Arbeiten mit Datenbanken in Java

Inhaltsverzeichnis
Java Als Mehrzwecksprache ermöglicht es uns neben den verschiedenen Funktionalitäten, die wir erreichen können, auch mit der Persistenz von Daten zu arbeiten Datenbanken die es auf dem Markt gibt.
EIN Datenbank Dies kann so einfach sein wie ein Schlüssel-Wert-System in einer reinen Textdatei, aber auch komplexere und modernere Lösungen wie nicht-relationale. Dies macht die Entwicklung verschiedener Verbindungsschemas zu einer obligatorischen Funktion.
JDBC sind eine Reihe von Klassen, die es erlauben Java Verbindungen mit Datenbank-Engines herstellen, dies ermöglicht es uns, die Ergebnisse der Abfragen in einem Objekt namens . zu erhalten Ergebnismenge.
Da jeder Motor anders ist, ist es wahrscheinlich, dass die Ergebnismenge die wir erhalten, ist spezifisch, deshalb ist es für uns nicht bequem, unsere Anwendung um dieses Objekt herum zu strukturieren.
Um dieses Problem zu lösen, können wir das sogenannte a Zugriffsobjekt, mit denen wir die verschiedenen Formen unserer Ergebnismenge damit Ihre Anwendung innerhalb unseres Programms einfacher zu implementieren ist und der Entwickler somit weniger Probleme hat.
Das DAO-DesignmusterDas Datenzugriffsobjekt oder DAO Es ist ein Entwurfsmuster, das das sammelt, was wir im vorherigen Punkt erklärt haben. Dies erfordert, dass wir eine Zugriffsklasse auf die Eigenschaften unserer erstellen Datenbank. Damit dies funktioniert, müssen wir die ganze Arbeit machen JDBC und dem Controller, der es uns ermöglicht, eine Verbindung mit der gewünschten Engine herzustellen, zusätzlich müssen wir die logische Implementierung durchführen, die wir erklären, um eine Abhängigkeit von bestimmten Komponenten zu vermeiden, die uns die Migration zu einer anderen Datenbank-Engine nur erschweren würde.
Das erste, was wir tun müssen, um eine Verbindung aufzubauen JDBC besteht darin, die Engine zu identifizieren, zu der wir die Verbindung herstellen möchten, und dann die erforderlichen Klassen für diese Verbindung zu erhalten. In diesem Fall werden wir eine Verbindung herstellen MySQL, diese Engine ist leicht, kostenlos und plattformübergreifend, sodass wir sie sowohl in Windows, Linux oder Mac.
Stecker / J ist die Reihe von Klassen, die vom Entwicklerteam von . angeboten werden MySQL, mit ihnen können wir machen JDBC arbeite damit zusammen Datenbanken relational, um es in unser Projekt zu integrieren, müssen wir die folgenden Schritte ausführen.
1- Wir müssen entweder die Datei herunterladen, die unserer Plattform entspricht Fenster oder für andere von der offiziellen Website von MySQL Im folgenden Link.

VERGRÖSSERN

2- In diesem Tutorial arbeiten wir unter Windows, daher werden wir es für die Implementierung in unseren Beispielen zur einfacheren Laufzeit zur Laufzeit ausführen. Wenn wir das Paket jedoch herunterladen, installieren wir es, damit es auf unserem Computer verfügbar ist.
3- Jetzt testen wir, ob auf unserem Computer alles richtig funktioniert. Dazu erstellen wir einen kleinen Code, in dem wir sehen, ob Stecker / J wurde erfolgreich in unser System geladen, dafür verwenden wir den folgenden Code:
 öffentliche Klasse ConnectionTest {öffentliche statische void main (String [] args) {try {Klasse c = Class.forName ("com.mysql.jdbc.Driver"); System.out.println ("Geladene Klasse:" + c.getName ()); } catch (ClassNotFoundException ex) {System.err.println (ex); }}} 

4- Um dieses Beispiel auszuführen, müssen wir die Abhängigkeit einschließen, es wird empfohlen, dass wir die .Krug im gleichen Pfad unserer Datei TestConexion.java. Wenn dies abgedeckt ist, werden wir unsere Datei kompilieren, wir öffnen eine Konsole und mit der Anweisung javac und das hinzufügen .Krug zum Klassenpfad zur Laufzeit mit dem Befehl -cp Wir können es tun, sehen wir uns die Befehlszeile an:
 javac -cp mysql-connector-java-5.1.34-bin.jar ConnectionTest.java 

5- Um unsere Datei schließlich auszuführen, müssen wir nur die folgende Anweisung ausführen:
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection

Wenn wir in unserer Konsole ein Ergebnis wie das folgende haben, können wir mit Operationen beginnen, um zu Datenbanken:

VERGRÖSSERN

Der nächste Schritt, den wir machen müssen, ist eine effektive Verbindung zu unserem Datenbank, dafür müssen wir eine mit mindestens einer Tabelle auf unserem lokalen Server erstellen, auf diese Weise können wir einige Tests durchführen, um die Sache zu vereinfachen, erstellen wir eine Datenbank namens Prüfung und wir verwenden das folgende Skript, um die Tabelle zu erstellen und einige Testdatensätze einzufügen, um die Entwicklung des Tutorials zu beschleunigen:

CREATE TABLE IF NOT EXISTS `users` (
`id` bigint (20) NOT NULL AUTO_INCREMENT,
`name` varchar (255) NICHT NULL,
`date` Datum NICHT NULL,
`state` int (11) NICHT NULL,
PRIMÄRSCHLÜSSEL (`id`)
) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 3;
INSERT IN `users` (` id`, `name`,` date`, `status`) VALUES
(1, 'Benutzer 1', '2015-01-01', 1),
(2, 'Benutzer 2', '2015-01-01', 1);

Jetzt im folgenden Code von Java Wir werden uns darauf konzentrieren, die Verbindung zu den Datenbank, dafür mit a versuche Block zu fangen Wir werden überprüfen, ob es effektiv und fehlerfrei ist, und wenn die Verbindung hergestellt wurde, drucken wir eine Erfolgsmeldung, mal sehen:
 java.sql.Connection importieren; java.sql.DriverManager importieren; öffentliche Klasse ConnectionTest {privat statisch final String path = "jdbc: mysql: // localhost"; private static final String user = "unser Benutzer"; private static final String password = "unser Passwort"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (path, user, password); System.out.println ("Verbindung erfolgreich"); } catch (Ausnahme e) {e.printStackTrace (); }}} 

Aus diesem Code können wir sehen, dass wir zwei Bibliotheken aus dem Paket importieren müssen java.sql, einer ist Verbindung die für die Verwaltung aller Aktivitäten verantwortlich ist, um mit der Datenbank kommunizieren zu können, und die andere ist Gerätemanager die dafür verantwortlich ist, die Art und Weise bereitzustellen, wie wir mit ihr kommunizieren. Wenn wir die Schritte richtig befolgt haben, sollten wir die folgende Meldung sehen, wenn wir unser Beispiel in der Konsole ausführen:

VERGRÖSSERN

Wir haben alles bereit, um mit dem Testen unserer Abfragen zu beginnen, dafür benötigen wir mehrere Dinge, das erste, das wir bereits haben, ist das Objekt, das die Verbindung zum Datenbank, dann müssen wir die Pakete importieren Stellungnahme Ja Ergebnismenge mit denen wir erst Anfragen stellen können und dann gleich die Antwort bekommen, zum Schluss gehen wir das Objekt durch Ergebnismenge wo wir die in die Tabelle eingefügten Daten anzeigen und vor dem Schließen des Programms jedes der von uns erstellten Objekte schließen müssen. Auf diese Weise garantieren wir die Integrität unserer Daten. Sehen wir uns den Code an, der zeigt, was erklärt wird:
 java.sql.Connection importieren; java.sql.DriverManager importieren; java.sql.ResultSet importieren; java.sql.Anweisung importieren; öffentliche Klasse ConnectionTest {privat statisch final String path = "jdbc: mysql: // localhost / test"; private static final String user = "unser Benutzer"; private static final String password = "unser Passwort"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (Pfad, Benutzer, Passwort); Anweisungsabfrage = con.createStatement (); System.out.println ("Verbindung erfolgreich"); ResultSet result = query.executeQuery ("SELECT * FROM users"); while (result.next ()) {String name = result.getString ("name"); String date = result.getString ("Datum"); System.out.println ("Name:" + Name + "Aufzeichnungsdatum:" + Datum); } result.close (); abfrage.schließen (); con.close (); } catch (Ausnahme e) {e.printStackTrace (); }}} 

Es ist wichtig zu erwähnen, dass in unserem Attribut Route Wir haben es geändert und den Namen des Datenbank Forderung Prüfung wo wir unsere Benutzertabelle erstellen, unsere Datei kompilieren und ausführen müssen, wäre das Ergebnis per Konsole wie im folgenden Bild zu sehen:

VERGRÖSSERN

Nachdem wir uns das Beispiel der Verbindung und der Abfragen an die Datenbank angesehen haben, sehen wir, dass wir eine Figur namens . verwenden müssen Erklärung vorbereiten Das erleichtert unsere Arbeit, indem wir Abfragen vorbereitet lassen, damit wir sie mehrmals ausführen können, ohne sie immer wieder neu erstellen zu müssen Abfrage übergeben wir die realen Werte daran.
VorteilDies hat mehrere Vorteile, wir haben bereits gesagt, dass der erste darin besteht, etwas verwenden zu können, ohne es zu wiederholen, aber es dient auch der Sicherheit, da wir so die Werte behandeln können, die möglicherweise aus Benutzereingaben stammen, um einen Angriff auf unsere zu vermeiden Datenbank, zusätzlich können wir auch die Lesbarkeit unseres Programms erleichtern.
Im folgenden Beispiel erstellen wir eine Abfrage mit Vorbereitete Erklärung, damit es während unseres Programms mehrmals verwendet werden kann. Sehen wir uns den resultierenden Code an:
 java.sql.Connection importieren; java.sql.DriverManager importieren; java.sql.ResultSet importieren; import java.sql.PreparedStatement; public class PreparedStatementTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "unser Benutzer"; private static final String password = "unser Passwort"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (path, user, password); PreparedStatement query = con.prepareStatement ("SELECT * FROM users Where id =?;"); System.out.println ("Verbindung erfolgreich"); query.setInt (1, 1); ResultSet result = query.executeQuery (); while (result.next ()) {String name = result.getString ("name"); String date = result.getString ("Datum"); System.out.println ("Name:" + Name + "Aufnahmedatum:" + Datum); } result.close (); abfrage.schließen (); con.close (); } catch (Ausnahme e) {e.printStackTrace (); }}} 

Wir bemerken, dass mit der Methode setInt Mit dem Abfrageobjekt können wir die notwendigen Parameter für die Abfrage übergeben, damit können wir sie von der Ausführung der Abfrage trennen und so Portabilität und Lesbarkeit gewinnen. Zum Abschluss kompilieren wir unser Programm und führen es aus:

VERGRÖSSERN

Damit beenden wir dieses Tutorial, da wir die Optionen sehen, mit denen wir arbeiten können Datenbanken In Java Sie sind sehr interessant, da sie es uns ermöglichen, Flexibilität und Vielseitigkeit in unsere Anwendungen zu integrieren. Das Wichtigste ist, dass wir, wenn wir Erfahrung mit anderen Sprachen haben, diese sicherlich hier verwenden werden.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave