Hauptinhalt:
1.JDBC -Verbindungsdatenbank (Bearbeiten) Schritte (es gibt hauptsächlich sechs Schritte)
1. Registrieren Sie den Treiber: class.forname ("com.mysql.jdbc.driver"); Last in die JVM angezeigt
2. Nehmen Sie die Verbindung ab: (1) Param1: Die URL zur Verbindung zur Datenbank -----》 String url = "Jdbc: mysql: // localhost: 3306/test?"+ "UseUnicode = true & charakteristisch
Param2: Benutzername, um eine Verbindung zur Datenbank herzustellen-》 String user = "H4";
Param3: Kennwort zur Verbindung zur Datenbank ----》 String pass = "111";
Verbindung conn = driverManager.getConnection (URL, Benutzer, Pass); // Methoden unter DriverManager: GetConnection (String -URL, String -Benutzername, String -Passwort)
.
"useUnicode = true & charakterencodierung = utf8"; Dies wird hinzugefügt, um verstümmelten Code zu verhindern, und es wird angegeben, um Unicode-Zeichensätze zu verwenden und diese mit UTF-8 zu bearbeiten.
3.. Erstellen Sie ein Anweisungsobjekt (drei Hauptmethoden): Anweisung STMT = Conn.CreateStatement (); // Methoden unter der Verbindungsschnittstelle: Anweisung Createstatement ()
PrepedStatement pstmt = conn.preeParedStatement ();
CallABlestatement cstmt = conn.preeRecall ("{call DeMosp (?,?)}");
Analysieren wir sie unten: (1) die Differenz zwischen Anweisungen und vorbereiteten Objekten, die die Abfrageparameter dynamisch festlegen kann
(2) Methode zum Einstellen von Parametern vorbereitet.setxxxx (ParameterIndex, Wert). Wenn der Datenbankparametertyp varchar ist, wird SetString verwendet. Wenn der Parametertyp ganzzahlig ist, wird SetInt verwendet.
(3) CallABlestatement.setxxxx (ParameterIndex, Wert) // Wert in der Reihenfolge der Parameter festlegen
CALLABLESTATEMENT.SETXXXX (Parametername, Wert) // Wert auf den Namen des Parameters festlegen. Dieser Name ist der Name des formalen Parameters bei der Definition der gespeicherten Prozedur.
(4) CALLABLESTATEMENT.registerOutParameter -Methode wird verwendet
4. SQL Anweisung ausführen: Ergebnisset rs = stmt.executeQuery (SQL); Mit Ausnahme der Abfrageanweisung executeQuery (); Alles andere wird ausgeführt, dass update () ausgeführt wird;
Methoden unter Anweisungsschnittstelle:
Boolean Execute (String SQL): Führen Sie die SQL -Anweisung aus.
ResultSet ExecuteQuery (String SQL): SQL -Anweisung ausführen, der Rückgabewert ist Ergebnisetet
int executeUpdate (String SQL): Führen Sie die SQL -Anweisung aus, der Rückgabewert ist die Anzahl der betroffenen Zeilen
5. Prozessergebnissatz: Die GETXXXX -Methode des Ergebnisset -Objekts hängt vom Typ des Feldes in der Tabelle in der Datenbank ab. Zum Beispiel: VARCHAR2 entspricht GetString, wenn es ganzzahlig ist, ist die entsprechende Methode getInt/getlong
While (rs.Next ()) {rs.getInt (columnIndex); // den Wert des Feldes über die Spaltennummer rs.getString (Spaltenname) abrufen; // den Wert des Feldes durch die allgemeinen Methoden des Spaltennamens unter der Resultset -Schnittstelle erhalten: vor dem ersten (); Bewegen Sie den Cursor in den ersten Datensatz (vor) im Ergebnis von Afterset (); Bewegen Sie den Cursor auf den letzten Datensatz (nach) im Ergebnis des Ergebniss) Absolute (intcolumn): Bewegen und kann nicht geändert werden.6. Schließen Sie die Ressource: Nach Abschluss des Betriebs müssen Sie JDBC schließen, um die JDBC -Ressourcen zu veröffentlichen. Aber die Reihenfolge sollte das Gegenteil sein, wenn Sie das Objekt definieren, genau wie das Schließen der Tür, das Schließen von innen zuerst und nach außen.
Das folgende Beispiel:
if (rs! = null) {// 1. Schließen Sie den Ergebnisset try {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {// 2. Schließen Sie das deklarierte Objekt Versuchen Sie {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {// 3. Schließen Sie die Verbindung (denken Sie daran, zuerst die vorherige 1.2 zu schließen. Dann schließen Sie die Verbindung) Versuchen Sie {conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}2. Im Folgenden finden Sie ein einfaches (detailliertes) Abfragedaten Beispiel
Paket Javacore1; // Dies ist ein Paketname, den Sie erstellt haben. importieren java.sql.callablestatement; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedStatement; import Java.sql.resultset; // Die fünf links sind die Paketnamen, die Sie beim Schreiben eines Programms importieren möchten. Denken Sie daran, Pakete unter java.sql zu sein. importieren java.sql.sqlexception; import java.sql.statement; public class jdbc {// Definieren Sie eine Klasse public static void main (String [] args) {// Hauptmethode try {String driver = "com.mysql.jdbc.driver"; // 1. Definieren Sie den Treibernamen Treiber als Treiber als com.mysql.jdbc.driver String url = "JDBC: MySQL: // localhost: 3306/test?" // 2. URL definieren; JDBC ist das Protokoll; MySQL ist das Subprotokoll: Repräsentiert den Namen des Datenbanksystemverwaltungsnamens. LOCALHOST: 3306 ist der Adresse und der Zielport Ihrer Datenbankquelle. Der Test ist der Ort des Tisches, den ich selbst gebaut habe, und du benutzst deine als Standard. + "useUnicode = true & charakterencodierung = utf8"; // Versteckte Code verhindern; useUnicode = true bedeutet mit dem Unicode -Zeichensatz; charakterencodierung = utf8 bedeutet mit UTF-8 zur Bearbeitung. String user = "h4"; // 3. Definieren Sie den Benutzernamen und schreiben Sie dem Benutzer, mit dem Sie eine Verbindung herstellen möchten. String Pass = "111"; // 4. Benutzerkennwort. String querysql = "Select * von Mitarbeitern"; // 5. Der Tabellenname, nach dem Sie suchen möchten. Class.Forname (Treiber); // 6. Registrieren Sie den Treiber und verwenden Sie Class.froname () in der Klassenklasse unterhalb des Java.lang -Pakets; Der Treiber hier ist der in 1 oder class.Forname definierte Treiber ("com.mysql.jdbc.driver"); Verbindung conn = driverManager.getConnection (URL, Benutzer, Pass); // 7. Holen Sie sich die Datenbankverbindung und verwenden Sie GetConnectin (String -URL, String -Benutzername, Zeichenfolgenkennwort) von TriverManager in java.sql, um // die URL, den Benutzer, den Benutzer zu vervollständigen, in Klammern zu übergeben. Anweisung STMT = Conn.CreateStatement (); // 8. Erstellen Sie ein Anweisungsobjekt, um die SQL -Anweisung auszuführen: Es gibt hauptsächlich drei Instanzen der Anweisung, vorbereiteten Stellungen und Callablestatements zur Implementierung // Die drei Implementierungsmethoden sind: Anweisung STMT = con.CreateStatement (); // PreparedStatement pstmt = conn.Preparestatement (SQL); // CallAnlestatement cstmt = conn.prepareCall ("{call DeMosp (?,?)}"); ResultSet rs = stmt.executeQuery (querysql); // 9. Führen Sie SQL aus und geben Sie es bis zum Ende zurück; ResultSet ExecuteQuery (String SQLString): Wird verwendet, um ein Ergebnis -Set (Ergebnis) -Objekt zurückzugeben. while (rs.Next ()) {//10.Transfer das Ergebnis set system.out.println ("Personalnummer:"+rs.getString ("Mitarbeiter")+"Gehalt:"+rs.getString ("Gehalt")+"Name"+rs.getString ("last_name"). ! } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {// 13. Schließen Sie die Verbindung (denken Sie daran, zuerst die vorherigen 11.12 zu schließen. Schließen Sie dann die Verbindung, genau wie die Tür, die Innenseite zuerst schließen und schließlich die äußerste schließen) versuchen {conn.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (exception e) {e.printstacktrace (); }}}}3. Um intuitiver zu sein, verkapulieren wir die Erfassung von Datenbankverbindungen und geben Verbindungen in der Methode frei, um später einen besseren Betrieb zu erleichtern.
Paket Javacore1; importieren java.sql.connection; import java.sql.drivermanager; public class jdbc {public static void main (String [] args) {Verbindung conn = getConnection ("H4", "111"); // Datenbank abrufen Verbindung/*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , ,,,,,,,,,,,,,,, , ,,,,,,,,,,,,,,, , ,,,,,,,,,,,,,,, String -Pass) {Verbindung conn = null; // deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "JDBC: MySQL: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Die Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}V.
1. Abfragendaten
Paket Javacore1; import Java.sql.Connection; Import Java.sql.driverManager; Import Java.SQL.Resultset; Importieren Sie Java.sql.sqLexception. Datenbankverbindungsabfrage (Conn); // Methodenname Aufrufdatenbankverbindungs -ReleasConnection (Conn); // Datenbankverbindung freigeben} // Daten abfragen, Abfragemethode öffentliche statische Void -Abfrage definieren (Verbindung conn) {String SQL = "Select * aus Mitarbeitern"; try {Anweisung stmt = conn.CreateStatement (); // Sie können auch PreparedStatement verwenden, um Ergebnisset rs = stmt.executeQuery (SQL); // Die SQL -Anweisung auszuführen und das Ende zurückzugeben (rs.next () {// Übertragen Sie die resultierende Set und Go to the Next Line System.out.OUT.println ("Personalnummer:"+rs.GetString ("salaryee_id")). } if (rs! = null) {try {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {try {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {try {conn.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (exception e) {e.printstacktrace (); }} // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "jdbc: mysql: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}} // Die Daten abfragen, und die Ergebnisse werden in umgekehrter Reihenfolge angezeigt. Javacore umgekehrt. Importieren Sie Java.sql.connection; importieren Sie Java.sql.drivermanager; Java.sql.resultset importieren Java.sql.sqLexception; Import Java.SQL.Statement; getConnection ("H4", "111"); // Datenbankverbindungsabfrage (conn) erhalten; // Der Methodame nennt die Datenbankverbindungs -ReleasConnection (CONN); // Die Datenbankverbindung} // die Daten abfragen, die Abfragemethode öffentliche statische Void -Abfrage (Verbindung conn) {String sql = "aus den Mitarbeitern auswählen" definieren; try {Anweisung stmt = conn.CreateStatement (); // Sie können auch PreparedStatement verwenden, um das Ergebnis RS = stmt.executeQuery (SQL) zu tun; // Die SQL -Anweisung ausführen und das Ende rs.afterLast () zurückgeben. // Zuerst zur letzten Zeile überspringen (rs. -previous ()) {// Übertragen Sie das Ergebnis -Set und up Das Zeilensystem.out.println ("Personalnummer:"+rs.getString ("Employee_id")+"Gehalt:"+rs.getString ("Gehalt"); } if (rs! = null) {try {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {try {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {try {conn.close (); } catch (sqlexception e) {e.printstacktrace (); }}}} catch (Ausnahme e) {e.printstacktrace (); }} // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "jdbc: mysql: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}2. Einfügen von Daten ein
Paket Javacore1; Import Java.sql.Connection; Import Java.sql.driverManager; Import Java.sql.sqlexception; Import Java.sql.statement; öffentliche Klasse Insert {public static void main (String [] args) {Connection conn = getConnection ("H3", "1111"); // Datenbankverbindung abrufen (conn); // Methodenname Aufrufe Datenbankverbindungs -ReleasConnection (Conn); // Datenbankverbindung veröffentlichen} // Daten einfügen public static void Insert (Verbindung conn) {try {string sql = "In Mitarbeiter einfügen (Employee_id, last_name, Gehalt, Abteilung, userID)" + "Werte ('100010', 'xiaogou', '7000', '004', '9')"; // SQL -Anweisung zum Einfügen von Datenanweisung STMT1 = Conn.CreateStatement (); // Anweisungsobjekt für die Ausführung statischer SQL Anweisung int count = stmt1.executeUpdate (SQL); // SQL -Anweisung zur Durchführung des Insertionsbetriebs und der Rückgabe der Anzahl des eingefügten Datensystems.out.println ("eingefügt" + count + "Daten"); // Ausgabe des Ergebniss des Insertionsoperation Conn.CLOSE (); // die Datenbankverbindung schließen} catch (SQLEXception e) {e.printstacktrace (); }} // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "jdbc: mysql: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCoding = utf8"; // Verurteilte Try {class.forname (Treiber); // Registrieren (laden) Der Treiber conn = driverManager.getConnection (url, user, pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace (); } return conn; } // Die Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}3.. Daten löschen
Paket Javacore1; Import Java.sql.Connection; Import Java.sql.driverManager; Import Java.SQL.SQLEXception; Import Java.sql.statement; öffentliche Klasse löschen {public static void Main (String [] args) {connection conn = getConnection ("h3", "1111". // Datenbankverbindung abrufen delete (conn); // Methodenname Aufrufdatenbankverbindung; releaseconnection (conn); // Datenbankverbindung veröffentlichen} // Daten löschen public static void delete (Verbindung conn) {String sql = "Von Mitarbeitern löschen wobei Mitarbeiter_id = 100009"; try {Anweisung stmt = conn.CreateStatement (); // oder verwende die methodische methodische methode stmt.executeUpdate (SQL); // Die SQL -Anweisung if (stmt! = null) {try {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (sqlexception e) {e.printstacktrace (); }}} // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "jdbc: mysql: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Die Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}4. Daten aktualisieren
Paket Javacore1; import Java.sql.Connection; Import Java.sql.driverManager; Import Java.SQL.SQLEXception; Importieren Sie Java.sql.statement; öffentliche Klassen -Update {Public Static Void Main (String [] Args) {Connection conn = getConnection ("H3", "1111"); // Datenbankverbindungs -Aktualisierung (Conn) abrufen; // Methodenname Aufrufdatenbankverbindungs -ReleasConnection (Conn); // Datenbankverbindung veröffentlichen} // Daten öffentlich statische void -Update (Verbindung conn) {String sql = "Mitarbeiter setzen Sie das Setzen von salary = 8000, wobei Mitarbeiter_ID = 100005"; try {Anweisung stmt1 = conn.CreateStatement (); // oder verwendete die methodische methodische methode stmt1.executeUpdate (SQL); // Führen Sie die SQL -Anweisung if (STMT1! = NULL) {try {stmt1.close () aus; } catch (sqlexception e) {e.printstacktrace (); }}} catch (sqlexception e) {e.printstacktrace (); }} // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "jdbc: mysql: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Die Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}5. Transfer (Transaktionen)
JDBC übernimmt Transaktionen durch automatische Verpflichtung zu schließenden Verbindungen:
Connection.SetAutoCommit (Falsch);
Transaktion einreichen:
Connection.Commit ();
Rollback -Transaktions -Rollback -Teil:
Connection.Rollback (SavePoint);
Alle zurückrollen:
Connection.Rollback ();
Paket Javacore1; import Java.sql.Connection; Import Java.sql.driverManager; Import Java.SQL.Statement; öffentliche Klasse transcash {public static void main (String [] args) {Verbindung conn = getConnection ("H3", 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 ") Die Datenabase -Verbindung transcash ("; // Methodenname Aufrufe die Datenbankverbindungs -Releasconnection (CONN); // Die Datenbankverbindung} // Transfer (Datenkonvertierung) (die ursprünglichen Daten waren 100 und 500, aber nach der Implementierung dieser Funktion wird es zu 500 und 100. try {conn.setAutocommit (false); // Automatik -Einreichungszeichenfolge SQL = "Aktualisieren von Mitarbeitern setzen Sie das Gehalt = 500, wobei Mitarbeiter_ID = 100001"; STMT = Conn.CreateStatement (); stmt.executeUpdate (SQL); SQL = "Aktualisieren von Mitarbeitern Setzen Sie Gehalt = 100 wobei Mitarbeiter_id = 100002"; STMT.ExecuteUpdate (SQL); // Die SQL -Anweisung ausführen, werden die beiden oben genannten Gehälter ausgetauscht // int i = 1/0; In diesem Fall wird die Aufgabe nicht erledigt, da dies eine vollständige Sache ist, und wenn es einen kleinen Fehler gibt, fehlschlägt alles Conn.Commit (); // Transaktion} catch (Ausnahme E) {e.printstacktrace (); } endlich {try {if (stmt! = null) {stmt.close (); } catch (Ausnahme e) {e.printstacktrace (); }}} // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "jdbc: mysql: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}6. Finden Sie gespeicherte Prozeduren ohne Parameter
package javacore1;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class ExecProc { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Datenbankverbindung abrufen EXECPROC (CONN); // Methodenname Aufrufdatenbankverbindungs -ReleasConnection (CONN); // Datenbankverbindung freigeben} // Rufen Sie nicht abargumentierte gespeicherte Prozedur auf; public static void execProc (Verbindung conn) {string sql = "{call raiseSalary}"; try {callablestatement cstmt = conn.prepareCall (SQL); cstmt.executeUpdate (); } catch (sqlexception e) {e.printstacktrace (); }} // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "jdbc: mysql: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}7. Finden Sie gespeicherte Prozeduren mit Parametern
package javacore1;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Types;public class GetMulti { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Datenbankverbindung abrufen int cnt = getMulti (conn); // gespeicherte Verfahren finden; System.out.println ("people number:" + cnt); releaseconnection (conn); // Datenbankverbindung veröffentlichen} // Der Suchprozess hat Parameter public static int getMulti (Verbindung conn) {int Dept_id = 100001; int cnt = 0; String sql = "{call calc_emp_count (?,?)}"; Versuchen Sie {callABLESTATEMENT CSTMT = CONN.PREPARECALL (SQL); // Initialisieren des Anweisungsobjekts CSTMT.Setint (1, Dept_id); // Callablestatement.setxxx (Parameter, Wert) oder (Zahl, Wert) und hergestellt.setxxx (numme, value) kann nur wie diese CSTMt.SetIntation (2, cnt). // cstmt.registerOutParameter (2, Typen.Integer); // DELEGEN SIE DEN Output -Parameter cstmt.executeUpdate (); // Führen Sie die SQL -Anweisung cnt = cstmt.getInt (2); // das Ergebnis ab (cstmt! E. printstacktrace (); } return cnt; } // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklare die Verbindungsobjekt -String -Treibe // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}8. Gewöhnliche Verarbeitung
Paket Javacore1; import Java.sql.Connection; Import Java.sql.date; Import Java.sql.drivermanager; Import Java.SQL.PrepararedStatement; // Datenbankverbindungsplaninsert (Conn) abrufen; // Methodenname Aufrufe Datenbankverbindungs -ReleasConnection (Conn); // Datenbankverbindung veröffentlichen} // Gewöhnliche Verarbeitung von public static void planInsert (Verbindung conn) {try {string sql = "In test_user1 einfügen (BenutzerID, Benutzername, LoadingTime)" + "Werte (?,?,?)"; // SQL -Anweisung zum Einfügen von Daten vorbereiteten Stattungen pstmt = conn.preparestatement (SQL); Long start time = system.currenttimemillis (); für (int i = 0; i <1000; i ++) {pstmt.setlong (1, i); pstmt.setString (2, "user"+i); pstmt.setDate (3, neues Datum (System.currentTimemillis ())); pstmt.executeUpdate (); } System.out.println ("Gesamtzeit genommen:"+(System.currentTimemillis () - StartTime)); pstmt.close (); // die Datenbankverbindung schließen} catch (SQLEXception e) {e.printstacktrace (); }} // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "jdbc: mysql: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}9. Stapelverarbeitung
Erhalten Sie das ursprüngliche JDBC -Transaktionsmuster:
boolean CurrentTransactionModle = con.getAutoCommit ();
Setzen Sie auf den Transaktionsmodus (Off Automatic Commit):
con.setAutocommit (falsch);
Aussage STM = con.CreateStatement ();
Drei heterogene SQL -Aussagen:
String SQL1 = "Vom Benutzer löschen wobei ID = 8";
String SQL2 = "Benutzer set name = 'java', wobei ID = 7";
String sql3 = "In Benutzer (Name, Passwort) Werte ('JDBC', 'JDBC')") ";
Fügen Sie den Stapelverarbeitungspuffer der Anweisung hinzu:
stm.addbatch (SQL1);
stm.addbatch (SQL2);
stm.addbatch (SQL3);
Batch -Updates durchführen:
stm.executeBatch ();
Senden Sie Transaktionen für dieses Batch -Update:
con.commit ();
Antwort auf den ursprünglichen Transaktionsmodus:
con.setAutocommit (CurrentTransactionModle);
Paket Javacore1; import Java.sql.Connection; Import Java.sql.date; Import Java.sql.drivermanager; Import Java.SQL.PrepararedStatement; "111111"); // Datenbankverbindungs -BatchInsert (Conn) abrufen; // Methodenname Aufrufe Datenbankverbindungs -ReleasConnection (Conn); // Datenbankverbindung veröffentlichen} // Die Geschwindigkeit der Stapelinsertion ist schneller als die der gewöhnlichen Verarbeitung public static void batchInsert (Verbindung conn) {try {string sql = "In test_user1 einfügen (BenutzerID, Benutzername, Ladezeit)" + "Werte (?,?)"; // Die SQL -Anweisung, die Daten vorbereitet einfügt Long start time = system.currenttimemillis (); für (int i = 0; i <1000; i ++) {pstmt.setlong (1, i); pstmt.setString (2, "user"+i); pstmt.setDate (3, neues Datum (System.currentTimemillis ())); pstmt.addbatch (); // Hinzufügen zur Batch -Verarbeitung} int [] result = pstmt.executebatch (); System.out.println ("Gesamtzeit genommen:"+(System.currentTimemillis () - StartTime)); pstmt.close (); // die Datenbankverbindung schließen} catch (SQLEXception e) {e.printstacktrace (); }} // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "jdbc: mysql: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}10. Pagination Display
package javacore1;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class Paging { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Datenbankverbindung Paging abrufen (conn, 1,3); // Methodenname Aufrufdatenbankverbindung und definieren Sie, welche Zeile angezeigt werden soll, in welcher Zeilen releaseconnection (conn); // die Datenbankverbindung freigeben} // Seite Abfrage öffentlich statische void Paging (Verbindung, intindex, int Total) {try {String SQL = "Aus -Limit von Mitarbeitern?". PreparedStatement pstmt = conn.preparestatement (SQL); pstmt.setint (1, startIndex); pstmt.setint (2, insgesamt); ResultSet rs = pstmt.executeQuery (); while (rs.Next ()) {System.out.print ("Arbeitsnummer:"+rs.getint (1)); System.out.println ("Abteilungsnummer:"+rs.getint ("Department_id")); } rs.close (); pstmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} // Datenbankverbindung öffentliche statische Verbindung getConnection (String -Benutzer, String -Pass) {Verbindung conn = null; // Deklarieren Sie die Verbindungsobjekt -String -Treiber = "com.mysql.jdbc.driver"; // Treiberklassenname String url = "jdbc: mysql: // localhost: 3306/test?" // Datenbank URL + "useUnicode = true & charakterenCodierung = utf8"; // Verurteilt try {class.forname (Treiber); // Registrieren (laden) Treiber conn = driverManager.getConnection (URL, Benutzer, Pass); // Datenbankverbindung} catch (Ausnahme E) {E.printStacktrace ();; } return conn; } // Datenbankverbindung veröffentlichen public static void releaseconnection (Verbindung conn) {try {if (conn! = Null) conn.close (); } catch (Ausnahme e) {e.printstacktrace (); }}}11. Das Ergebnissatz kann gescrollt werden
Paket Javacore1; import Java.sql.Connection; Import Java.sql.driverManager; Import Java.SQL.PrepararedStatement; Importieren Sie Java.sql.resultset import Java.sql.sqLexception; öffentliche Klasse Scrplll. "111111"); // Datenbankverbindung abrufen sclpllresult (conn); // Methodenname Aufrufdatenbankverbindungs -ReleasConnection (conn); // Lösen Sie die Datenbankverbindung} // Scrollen Sie das Ergebnis, das für die Anzeige der öffentlichen statischen void Scrollresult (Verbindung conn) {try {string sql = "Auswahl * aus Mitarbeitern"; // Scroll kann scrolliert werden // Gleichzeitigkeit, das Ergebnissatz ist nur schreibgeschützt und die vorbereitete Station kann nicht geändert werden. PrepedStatement pstmt = conn.preparestatement (SQL, resultSet.type_scroll_sensitive, resultset.concur_read_only); ResultSet rs = pstmt.executeQuery (); while (rs.Next ()) {// Travel System.out.print ("Arbeitsnummer:"+rs.getlong (1)); System.out.println ("name"+rs.getString ("last_name")); } while (rs.previous ()) {// Travel System.out.print ("Arbeitsnummer:"+rs.getlong (1)); System.out.println ("Arbeitsnummer:"+rs.getlong (1)); } rs.absolute (6); // reisen Sie direkt zur Zeile if (rs.Next ()) {System.out.print ("Arbeitsnummer:"+rs.getLong (1)); System.out.println ("......... Abteilungsnummer:"+rs.getString ("Department_id")); } rs.close (); pstmt.close (); } catch (sqlexception e) {e.printstacktrace (); } } //Database connection public static Connection getConnection(String user, String pass) { Connection conn = null;//Declare the connection object String driver = "com.mysql.jdbc.Driver";// Driver class name String url = "jdbc:mysql://localhost:3306/test?" // Database URL + "useUnicode=true&characterEncoding=UTF8";// Prevent garbled try { Class.forName(driver);// Register (load) driver conn = DriverManager.getConnection(url, user, pass);// Get database connection} catch (Exception e) { e.printStackTrace(); } return conn; }// Release database connection public static void releaseConnection(Connection conn) { try { if (conn != null) conn.close(); } catch (Exception e) { e.printStackTrace(); }}}五.把上面十一个放在一起当然最方便省事。(需要用谁,只需把前面的注释打开便行)
package javacore1;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Statement;import java.sql.Types;public class jdbcMySql {public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Get database connection //query(conn); //1. Query data //insert(conn); //2. Insert data //delete(conn); //3. Delete data //update(conn); //4. Update data //transCash(conn); //5. Transfer//execProc(conn); //6. Find stored procedures without parameters //int cnt = getMulti(conn); //7. Find stored procedures with parameters //System.out.println("People number: " + cnt); //Find stored procedures with parameters //planInsert(conn); //8. Ordinary processing //batchInsert(conn); //9. Batch processing // paging(conn,1,3);//10. Pagination display//scrpllResult(conn);//11. The result set can be scrolled to releaseConnection(conn);// Release database connection}//1. Query data, define query method public static void query(Connection conn){ String Sql="select * from employees"; try{ Statement stmt=conn.createStatement(); // You can also use PreparedStatement to do ResultSet rs=stmt.executeQuery(Sql);//Execute the sql statement and return the end while(rs.next()){//Transfer the result set System.out.println("People number:"+rs.getString("employee_id")+"Salary:"+rs.getString("salary")); } if(rs !=null){ try{ rs.close(); } catch (SQLException e){ e.printStackTrace(); } } if(stmt !=null){ try{ stmt.close(); } catch(SQLException e){ e.printStackTrace(); } } if(conn !=null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } catch(Exception e){ e.printStackTrace(); }}//2. Insert data public static void insert(Connection conn) { try { String sql = "insert into employees(employee_id,last_name,salary,department_id,userid)" + " values ('100010', 'xiaogou', '7000','004','9')"; // SQL statement Statement stmt1 =conn.createStatement(); // Create a Statement object for executing static SQL statements int count = stmt1.executeUpdate(sql); // Execute the SQL statement for insertion operation and return the number of inserted data System.out.println("Inserted" + count + "bar of data" into biao); //Output the processing result of the insertion operation conn.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } }//3. Delete data public static void delete(Connection conn){ String Sql = "delete from employees where employee_id=100009"; try { Statement stmt = conn.createStatement();// Or use the PreparedStatement method stmt.executeUpdate(Sql);// Execute the sql statement if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } catch (SQLException e) { e.printStackTrace(); } } }//4. Update data public static void update(Connection conn){ String Sql = "update employees set salary=8000 where employee_id=100005"; try { Statement stmt1 = conn.createStatement();//Or use PreparedStatement method stmt1.executeUpdate(Sql);//Execute the sql statement if (stmt1 != null) { try { stmt1.close(); } catch (SQLException e) { e.printStackTrace(); } } catch (SQLException e) { e.printStackTrace(); } } //5. Transfer (data exchange) (The original data was 100 and 500, but after implementing this function, it becomes 500 and 100. In fact, to put it bluntly, it is to update the data and change the data) public static void transCash(Connection conn){ Statement stmt = null; try{ conn.setAutoCommit(false);//Close automatic submission String sql = "update employees set salary=500 where employee_id=100001"; stmt = conn.createStatement(); stmt.executeUpdate(sql); sql = "update employees set salary=100 where employee_id=100001"; stmt = conn.createStatement(); stmt.executeUpdate(sql); sql = "update employees set salary=100 where employee_id=100002"; stmt.executeUpdate(sql);//Execute the sql statement, and the above two salaries will be replaced by conn.commit();//Commit transaction}catch(Exception e){ e.printStackTrace(); } finally{ try{ if(stmt != null)stmt.close(); } catch (Ausnahme e) {e.printstacktrace (); } } } }//6. Call the stored procedure without a parameter; public static void execProc(Connection conn){ String sql = "{call raisesalary}"; try { CallableStatement cstmt = conn.prepareCall(sql); cstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } //7. Find stored procedures with parameters public static int getMulti(Connection conn) { int dept_id = 100001; int cnt = 0; String sql = "{call calc_emp_count(?,?)}"; try { CallableStatement cstmt = conn.prepareCall(sql);//Initialize the Statement object cstmt.setInt(1, dept_id);//CallableStatement.setxxx(parameter, value) or (number, value), and PreparedStatement.setxxx(number, value) can only be like this cstmt.setInt(2, cnt); // cstmt.registerOutParameter(2, Types.INTEGER);//Declare the output parameter cstmt.executeUpdate();//Execute the sql statement cnt = cstmt.getInt(2);//Get the result if (cstmt != null) { cstmt.close();//Release the Statement object} } catch (Exception e) { e.printStackTrace(); } return cnt; }//8. Normal processing public static void planInsert(Connection conn) { try { String sql = "insert into test_user1(userid,username,loadingtime)" + " values (?,?,?)"; // SQL statement to insert data PreparedStatement pstmt=conn.prepareStatement(sql); long startTime=System.currentTimeMillis(); for(int i=0;i<1000;i++){ pstmt.setLong(1, i); pstmt.setString(2, "user"+i); pstmt.setDate(3, new Date(System.currentTimeMillis())); pstmt.executeUpdate(); } System.out.println("Total time taken: "+(System.currentTimeMillis() - startTime)); pstmt.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } } //9. The speed of batch insertion is faster than that of ordinary processing public static void batchInsert(Connection conn) { try { String sql = "insert into test_user1(userid,username,loadingtime)" + " values (?,?,?)"; // SQL statement that inserts data PreparedStatement pstmt=conn.prepareStatement(sql); long startTime=System.currentTimeMillis(); for(int i=0;i<1000;i++){ pstmt.setLong(1, i); pstmt.setString(2, "user"+i); pstmt.setDate(3, new Date(System.currentTimeMillis())); pstmt.addBatch();//Add to batch processing} int[] result=pstmt.executeBatch(); System.out.println("Total time consumed: "+(System.currentTimeMillis() - startTime)); pstmt.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } }//10. Pagination query public static void paging(Connection conn,int startIndex,int total){ try{ String sql="select * from employees limit ?,?"; PreparedStatement pstmt=conn.prepareStatement(sql); pstmt.setInt(1, startIndex); pstmt.setInt(2, total); ResultSet rs=pstmt.executeQuery(); while(rs.next()){ System.out.print("work number: "+rs.getInt(1)); System.out.println("Department number: "+rs.getInt("department_id")); }rs.close(); pstmt.close(); }catch(SQLException e){ e.printStackTrace(); } }//11. The result set scrolls to display public static void scrollResult(Connection conn){ try{ String sql="select * from employees"; //The result set can be scrolled//concurrency, the result set is read-only, and the PreparedStatement pstmt=conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs=pstmt.executeQuery(); while(rs.next()){ //Travel System.out.print("work number: "+rs.getLong(1)); System.out.println("name"+rs.getString("last_name")); }while(rs.previous()){//Travel System.out.print("work number: "+rs.getLong(1)); System.out.println("salary"+rs.getInt("salary")); } rs.absolute(6);//Indicate which line to jump directly to if(rs.next()){ System.out.print("work number: "+rs.getLong(1)); System.out.println("........Department number: "+rs.getString("department_id")); } rs.close(); pstmt.close(); } catch(SQLException e){ e.printStackTrace(); } } //Database connection public static Connection getConnection(String user, String pass) { Connection conn = null;//Declare the connection object String driver = "com.mysql.jdbc.Driver";// Driver class name String url = "jdbc:mysql://localhost:3306/test?" // Database URL + "useUnicode=true&characterEncoding=UTF8";// Prevent garbled try { Class.forName(driver);// Register (load) driver conn = DriverManager.getConnection(url, user, pass);// Get database connection} catch (Exception e) { e.printStackTrace(); } return conn; }// Release database connection public static void releaseConnection(Connection conn) { try { if (conn != null) conn.close(); } catch (Exception e) { e.printStackTrace(); }}}六.安装下载的数据库驱动程序jar包,不同的数据库需要不同的驱动程序(但是安装方法都是一样的)
在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是
打开eclipse
1.右击要导入jar包的项目,点properties
2.左边选择java build path,右边选择libraries
3.选择add External jars
4.选择jar包的按照路径下的确定后就行了。
Java连接MySQL的最新驱动包下载地址
http://www.mysql.com/downloads/connector/j
1.鼠标放在你建的根目录上面。右击,然后选择最下面的properties。
2.然后左边选择java build path,右边选择libraries ,在选择右边的add External jars ,选择jar包的路径,点击确定就可以了
3.装好后,图如下出现你要添加的包。