Wie Mysql mit Java verbinden?

Verbinden Sie Ihre Java-Anwendungen auf einem Datenbankserver ist auf die Funktionalität einer Softwarelösung unerlässlich. Wie SQL Server und C #, MySQL und Java benötigen eine Schnittstelle, die die notwendigen Klassen bietet eine conexión.Para zu verwalten verstehen, wie diese Verbindung zu erklären beginnt, wie die Verbindung API zu unserem IDEs haften, implementieren Sie dann den Code zu öffnen die Verbindung. Dann werden wir sehen, wie Befehle auszuführen, und am Ende werden wir die Ausführung von gespeicherten Prozeduren studieren. Was ist die Verbindung API? Es ist eine verwandte Reihe von Schnittstellen, die Verbindung zu einer Server-Datenbank in einer Java-Anwendung ermöglichen. JDBC allgemein genannt wird.
Die Idee ist, einen Treiber zu verwenden, den Zugriff auf einen MySQL-Server verwaltet, und öffnet so die Verbindung mit der Absicht, Befehle auf der Datenbank auszuführen. Dieser Treiber kann von hier aus oder nutzen Sie die Original-Website Downloads heruntergeladen werden: Ich schließe die Treiber in NetBeans? Es ist ganz einfach! Zuerst extrahieren Sie den Treiber in einem bestimmten Ort, dass Sie sich wohl fühlen, zum Beispiel den Pfad C: mysqlDriver. Netbeans und geht dann selbst in der Bar „Projekte“ Werkzeug zu positionieren. Projekt-Explorer auf Netbeans Nun mit der rechten Maustaste auf den Ordner „Bibliotheken“ und drücken Sie die „Add JAR / Ordner ...“ auswählen. Hinzufügen eines neuen JAR zum Projekt finden Sie nun die Datei "mysql-connector-java-5.1.31-bin.jar" im entpackten Ordner. Die Auswahl der Steckdose Wenn Sie die Datei aufgenommen haben, wird der Browser eine neue Einheit Projekte in den Verbinder zeigen. Jetzt können Sie Ihre Java-Anwendung und eine Datenbank in MySQL verbinden. Neue Abhängigkeit von unserem Projekt Wie installiere ich den Treiber in Eclipse? Installation Diese IDE ist sehr ähnlich wie Netbeans. Denken Sie daran, dass der erste Schritt ist für Sie die Datei des Verbinders an einem geeigneten Ort zu extrahieren. Konzentrieren Sie sich jetzt auf der Symbolleiste „Package Explorer“ genannt: Paket-Explorer in Eclipse Jetzt haben wir die Abhängigkeit unserer .jar-Datei hinzuzufügen. Dazu klicken wir direkt am Projekt und folgen Sie den Build-Pfadu003e Pfad hinzufügen Externe Archiv ... Fügen Sie die JAR arhivo Verbindung Achten Sie auf die „mysql-connector-java-5.1.31-bin.jar“ Datei, in der Sie den Stecker herausgezogen und auswählen. Auswahl des Konnektors MySQL Wenn alles gut gegangen ist, werden Sie eine neue externe Bibliothek mit dem Namen unseres Stecker haben. Damit können Sie jetzt Aktionen auf dem Mysql-Datenbank-Server. Zusätzliche Abhängigkeit von unseren Steckern
Wie mache ich die Verbindung zu meiner Datenbank? Zuerst werden wir alle JDBC-Klassen aus dem SQL-Paket enthalten: importieren java.sql. *; Klassen in diesem Paket sind die Verbindung zu unserer Datenbank zu erfassen, einen Befehl erstellen, erstellen Instanzen Prozeduren auszuführen und vieles mehr.
Dann initialisieren wir den Fahrer mit der statischen Methode Class.forName. Diese Methode zeigt die Java Virtual Machine für Klassenvariablen in Echtzeit zu sehen in dem Verzeichnis .Für Netbeans und Eclipse werden auch an weiteren Projekt Richtlinien aussehen. try {
Class.forName.newInstance;
System.out.println;
} Catch {
System.out.println;
} Jetzt nutzen wir die Verbindung der Verbindungsschnittstelle zu öffnen, die den Referenzdatenbankserver durch die getConnection Methode der Driver Schnittstelle empfängt: Verbindung mit = null;
...
try {
mit = DriverManager.getConnection;
// Andere und Vorgänge in der Datenbank ...
} Catch {
// Art des Fehlers behält die Kontrolle über
System.out.println;
} Der getConnection String Empfang bezieht sich auf die Verbindungszeichenfolge unsere Datenbank zuzugreifen. Wir müssen den Servernamen angeben, den Namen des Datenbank-Benutzernamen und Passwort ein. Es gibt noch weitere Parameter, aber diese sind damit grundsätzlich schnell und aktuellen Zugriff auf die Datenbank. Schauen wir uns die Syntax aussehen: jdbc: mysql: // [host: port], [host: port] ... / [Datenbank]
[? Property1] [= Wert1] [u0026 property2] [= Wert2] ... Diejenigen Teile, die in Klammern sind optional. Schließlich wird das Verfahren der Nähe der Verbindung zu schließen, so segura.con.close verwendet; Was kann ich tun, um einen Befehl auszuführen? Statement-Klasse werden wir Operationen auf unserer Datenbank verwenden auszuführen. Wir werden eine Instanz der Klasse mit der Methode create der Connection-Klasse erstellen: cmd = con.createStatement Statement; Denken Sie daran, dass eine Abfrage liefert eine oder mehr Zeilen in einer Tabelle. Statt Einfügen, Ändern und Löschen ändern die Datenbank, aber nicht zurück in einer tabellarischen Struktur. Vor diesem Hintergrund werden wir zwei verschiedene Methoden der Klasse Statement zur Verwendung auf dem Befehlstyp abhängig. Wenn Sie vorhaben, eine INSERT zu implementieren, DELETE, UPDATE, SET, usw. Befehl, verwenden Sie die Methode executeUpdate: try {
cmd = con.createStatement;
cmd.executeUpdate;
... Siehe, erhält executeUpdate als Parameter Zeichenfolge, die den Befehl. Im Falle der Verwendung von SELECT verwenden wir die Methode executeQuery, ResultSet-Typ führt. Diese Klasse ist Teil des SQL-Pakets, das wir importieren, und dient dazu, die zurückgegebenen Zeilen einer Abfrage zu handhaben. Ein Beispiel: ResultSet rs = null;
Statement cmd = null;
...
try {
cmd = con.createStatement;
rs = cmd.executeQuery;
... Nun, wenn Sie auf dem Bildschirm Ergebnisse sehen möchten oder einfach jede Zeile zugreifen, werden wir die nächste Methode der ResulSet Klasse. Diese Methode ermöglicht es uns, einen Lesezeiger auf die nächste Zeile des Ergebnisses sequentiell zu bewegen, bis sie den gesamten Tisch gedeckt hat. Wir werden eine Weile verwenden alle das Ergebnis zu lesen. Lassen Sie: während {
String name = rs.getString;
int age = rs.getInt;
System.out.println;
}
rs.close; Der obige Code implementiert die ResultSet getString und getInt Methoden. Beiden Verfahren erhalten, um den Wert der zurückgegebenen Spalte den Namen der Spalte oder die Position angibt. Es ist wichtig, das ResultSet Objekt in der Nähe zu schließen Dereferenzierung der Zeiger der tabla.Quisiera wissen tourte, wie mein Befehl zu verallgemeinern! Es ist genau das, was ich zu erklären gesucht!, Als generischer ein Befehl wesentlich ist es zu kombinieren mit den Swing-Kontrollen Java zur Verfügung gestellten Daten.
Angenommen, ein Benutzer eine Client-Datenbank durch den Code entfernen. Wie kann diesen Code in das String-Befehl einzubetten?
Die Antwort ist in der PreparedStatement-Klasse. Diese Klasse ermöglicht es Ihnen, mehrmals einen Befehl mit nur einer allgemeinen Definition zu laufen. Wir verwenden das Symbol „?“, Die die polymorphen Kapazitätsparameter in dem Befehl enthalten gibt.
Dies ist die Antwort auf die erste Frage: PreparedStatement DMFC = con.prepareStatement;
...
int value = Integer.parseInt;
pCmd.setInt;
pCmd.executeUpdate; Sie sehen, wir verwenden „?“ um anzuzeigen, dass der Client-Code variiert. SETINT dann die Methode verwenden, die die ersten angeben „?“ wir werden den Wert der aus dem Text extrahiert Variable setzen Field.¿Como ich mit gespeicherten Prozeduren zu tun? Wir verwenden die Callablestatement-Klasse. Mit dieser Klasse können Sie den Typ-Parameter angeben, das Verfahren mit entweder IN, OUT oder INOUT. Auch können Sie damit die Ergebnisse in tabellarischer Form verwalten, das Verfahren ergeben, wenn die Würfe, oder den Wert der OUT Parameter des Typs erhalten. Um einen ausführbaren Befehl erstellen wir die prepareCall Methode der Connection-Klasse verwenden, finden Sie unter: Callable WRK = con.prepareCall; Um sicherzustellen, muss das Call-Verfahren Klammer verwendet werden „{}“ in der Verarbeitungskette für den Befehl. Denken Sie daran, dass, wenn wir sahen wir Mysql Verfahren wurden unter Verwendung der CALL-Klausel auszuführen. Hier werden wir auch CALL-verwenden, um den Befehl auszuführen, und auch die Add „?“ den Polymorphismus parámetros.CallableStatement CMDC = con.prepareCallable} „, um anzuzeigen; Standardparameter eingegeben werden, aber wenn Sie jemals, dass man einstellen will, ist out, müssen Sie durch registerOutParameter Methode registrieren. Ein Beispiel: cmdC.registerOutParameter; Diese Methode hat zwei Parameter, wobei der erste Parameter ist die Position des zweiten Parametertyps ist. Der Typ wird durch die Attribute der Klassentypen angegeben, die alle Datentypen in Mysql verwendet wird, enthält. In diesem speziellen Fall als zweiten Parameter überprüft und Typ GANZ OUT.
Nun füttern die Eingangsparameter mit Hilfe der Set-Methoden zurück. Je nach Art der Daten existieren setInt, setString, setDate, setFloat etc. Alternativen Es hängt alles von der necesidades.¿Y als ich eine gespeicherte Prozedur ausführen? Zuerst werden wir die Methode ausführen verwenden, ist der Rückgabewert Boolean. Wenn wieder auf true bedeutet, dass das Verfahren eine oder mehrere Zeilen zurückgibt, so dass dann wir getResultSet verwenden. Wenn der Wert falsch ist, dann wird das Verfahren mit dem Verfahren executeUpdate ausgeführt, da sie nur die Datenbank ändert: if {
ResultSet rs = cmdC.getResultSet;
// Weitere Aktionen ...
} Else {
System.out.println;
} Wie bei den normalen Befehlen werden die get-Methoden verwenden, um die Ergebnisse der OUT.System.out.println Typ Parameter zu erhalten; Freund, können Sie ein komplettes Beispiel zeigen? ! Natürlich, wenn, schauen Sie sich das folgende Szenario:
Angenommen, Sie ein Software-Projekt zu ProtectYAPA Versicherer verkauft an Kunden und Versicherungsinformationen angeboten zu verwalten. Sie und Ihr Team erkennen, die sie benötigen, um eine gespeicherte Prozedur in MySQL Server zu nennen, deren Funktion es ist, die größten Kunden zu einer vergangenen Zeit als Parameter zu finden. Über die Schnittstelle wird geben der Benutzer den Wert Ende durch einen JTextField, die in einem JFrame Regeln enthalten ist.
Um das oben genannte Problem zu lösen Sie den folgenden Code implementieren: try {
mit = DriverManager.getConnection;
Callablestatement cmd = con.prepareCall} „;
cmd.setString;
Führen Sie den Befehl //
wenn {
// Die zurückgegebenen Tabelle
ResultSet rs = cmd.getResultSet;
// jede Zeile des Ergebnisses Get
während {
addFila, rs.getString};
}
}
else {
System.out.println;
}
} Catch {
// Art des Fehlers behält die Kontrolle über
System.out.println;
} Das Verfahren ist modular addFila Entfaltungsaggregations Reihen aufgerufen zu einer JTable. Seine Definition lautet wie folgt: public void addFila {
DefaultTableModel Muster = new DefaultTableModel;
model = jTable1.getModel;
modelo.addRow;
} Alle Beispiele mit einem Out-Parameter? ! Natürlich wollen wir in der Sofware Versicherungsgesellschaft an einer anderen Anforderung aussehen:
Sie möchten eine gespeicherte Prozedur in der Datenbank mit dem Namen sp_mejor_vendedor nennen. Dieses Verfahren hat zwei Ausgangsparameter, die die Code besten Versicherungsvertreter und die akkumulierte Menge des Umsatzes im Monat gemacht erhalten.
Die Lösung, die das Team vorgeschlagen wird, ist wie folgt: try {
mit = DriverManager.getConnection;
Callablestatement cmd = con.prepareCall} „;
// aufgezeichnet zwei Ausgangsparameter
cmd.registerOutParameter;
cmd.registerOutParameter;
// das Verfahren durchführen,
cmd.executeUpdate;
// den Wert beiden Parameter Get
int idVendedor = cmd.getInt;
int amount = cmd.getInt;
// Wir drucken die Ergebnisse des Verfahrens
System.out.println;
} Catch {
// Art des Fehlers behält die Kontrolle über
System.out.println;
} Diese kleinen Beispiele zeigen nur wurden der Reihe nach und informative Art und Weise aufgebaut, aber es wäre wünschenswert, dass Sie die Macht der OOP verwenden, wenn Sie Ihre Java-Anwendung auf Mysql verbinden möchten. Sie können eine Verbindung Attributklasse und Methoden definieren Befehle auszuführen, die Zeilen zurückgeben, Befehle auszuführen, nur die Datenbank ändern, öffnen Sie die Verbindung, ändern Datenbank usw.
Dieser Ansatz ermöglicht es Ihnen, Ihre Aktionen auf der Datenbank in Ihrer Anwendung zu verallgemeinern, die Flexibilität Entwicklung bieten würde, wenn Sie mit einem Team arbeiten. James Revelo Urrea - Unabhängige Entwickler

Stichworte

Computer-DatenbankenAnschlussTreiberEclipseJavaMySQLNetBeans