l. Methoden zur Verbindung mit der Datenbank: 1) ODBC (Open Database Connectivity)
Eine auf der Sprache C basierende Schnittstelle für den Zugriff auf die SQL-basierte Datenbank-Engine. Sie bietet eine konsistente Schnittstelle für die Kommunikation mit der Datenbank und den Zugriff auf Daten.
2) JDBC
Java-Version von ODBC
2. JDBC-Anwendungsprogrammierschnittstelle Antwort: Die JDBC-Anwendungsprogrammierschnittstelle ist:
1) Standard-Datenzugriffsschnittstelle, die mit verschiedenen Datenbanken verbunden werden kann;
2) Eine Reihe von Klassen und Schnittstellen in der Programmiersprache JAVA.
Die JDBC-Anwendungsprogrammierschnittstelle kann:
1) Stellen Sie eine Verbindung zur Datenbank her.
2) Senden Sie die SQL-Abfragezeichenfolge an die Datenbank.
3) Verarbeiten Sie die Ergebnisse.
Die JDBC-Anwendungsprogrammierschnittstelle besteht aus zwei Hauptteilen:
1) Die JAVA-Anwendungsentwicklungsschnittstelle ist für JAVA-Anwendungsentwickler gedacht.
2) JDBC-Treiberentwicklungsschnittstelle
3. JDBC-Treiber
Antwort: 1) Eine große Anzahl von Klassen, die JDBC-Klassen und -Schnittstellen implementieren;
2) Stellt eine Klasse bereit, die die java.sql.Driver-Schnittstelle implementiert.
4. Vier Arten von JDBC-Treibern Antwort: 1) JDBC-ODBC-Brücke
JDBC-Zugriff durch ODBC-Treiber bereitgestellt
2) Lokale API
Einige Java-Treiber konvertieren JDBC-Aufrufe in lokale Client-APIs
3) JDBC-Netz
Ein reiner Java-Treiber, der JDBC-Aufrufe an DBMS weiterleitet und nichts mit Netzwerkprotokollen zu tun hat. Der Aufruf wird dann über den Server in das DBMS-Protokoll konvertiert.
4) Lokales Protokoll
Reiner Java-Treiber, konvertiert JDBC-Aufrufe direkt in das von DBMS 5 verwendete Netzwerkprotokoll.
Antwort der JDBC-Entwicklerschnittstelle: 1) java.sql – die Hauptfunktion von JDBC unter der Java 2-Plattform, Standardversion (J2SE).
2) javax.sql – JDBC-erweiterte Funktionen unter der Java 2-Plattform, Enterprise Edition (J2EE)
6. Verwenden Sie die URL, um die Datenbank zu bestätigen. Antwort: Wir verwenden die URL, um eine Datenbank zu bestimmen (richtiger Treiber, richtiger Host, richtiges Protokoll, richtiges Protokoll). , korrekter Benutzername und Passwort);
Syntax: Protokoll:Unterprotokoll:Untername
Beispiel: jdbc:db2:MyTest
jdbc:db2://localhost:6789/MyTest
7. Erweiterte Funktionen des javax.sql-Pakets JDBC2.0 Antwort: 1) Datenquellenschnittstelle;
2) Verbindungspool;
3) Verteilte Transaktionen;
4) Rowset;
8. Erstellen Sie eine grundlegende JDBC-Anwendung. Antwort: 1) Schritt 1: Registrieren Sie einen Treiber;
2) Schritt 2: Stellen Sie eine Verbindung zur Datenbank her;
3) Schritt 3: Erstellen Sie eine Erklärung;
4) Schritt 4: Führen Sie die SQL-Anweisung aus.
5) Schritt 5: Verarbeiten Sie die Ergebnisse;
6) Schritt 6: Schließen Sie das JDBC-Objekt.
9. Registrieren Sie einen Treiber (Schritt 1).
Antwort: 1) Der Treiber wird verwendet, um eine Verbindung zur Datenbank herzustellen;
2) Die JDBC-Anwendungsprogrammierschnittstelle verwendet den ersten Treiber, der erfolgreich eine Verbindung zur angegebenen URL herstellen kann.
3) Mehrere Treiber können gleichzeitig geladen werden
10. So registrieren Sie einen Treiber:
Antwort: 1) Verwenden Sie den Klassenlader (Laden; Instanziierung; Registrierung im DriverManager).
a. Class.forName("Com.ibm.db2.jdbc.app.DB2Driver");
b. Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");
c. Class.forName("Com.microsoft.jdbc.sqlServer.SQLServerDriver);
d. Class.forName("oracl.jdbc.driver.OracleDriver");
e. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
2) Instanziieren Sie einen Treiber
a. Driver drv = new COM.cloudscape.core.RmiJdbcDriver();
1. Stellen Sie eine Verbindung zur Datenbank her (Schritt 2).
Antwort: Wenn DriverManager die Methode getConnection(urlString) aufruft, ruft er tatsächlich die Methode connect(urlString) des Treibers auf;
1) Wenn ein Treiber definitiv einer Datenbank-URL entspricht, stellt DriverManager eine Verbindung her;
2) Wenn kein Treiber übereinstimmt, wird null zurückgegeben und der nächste Treiber überprüft;
3) Wenn die Verbindung nicht hergestellt wird, wird eine SQLExcepiton-Ausnahme ausgelöst.
2. Einige häufig verwendete JDBC-URLs
Antwort: 1) JDBC-ODBC: jdbc:odbc:<DB>
2) Oracle: jdbc:oracle:oci:@<sid> oder jdbc:oracle:thin:@<SID>
3) Weblogic MS-SQL: jdbc:weblogic:mssqlserver4:<DB>@<HOST>:<PORT>
4) DB2: jdbc:db2:MyTest oder jdbc.db2://localhost:6789/MyTest (erfordert Benutzernamen und Passwort)
3. Antwort auf die Treiberverbindungsmethode: 1) Erstellen Sie einen direkten Aufruf an die angegebene Treiberinstanz;
2) Vermeiden Sie allgemeine Zugriffsprobleme
Treiber drv = new COM.ibm.db2.jdbc.app.DB2Driver();
Verbindung con = null;
Versuchen Sie es mit {con = drv.connect("jdbc:db2:MyTest",new Properties())}
Catch(SQLException e){}
4. Erstellen Sie eine Anweisung (Schritt 3)
Antwort: 1) Drei Schnittstellen von Statement:
a. Erklärung;
b. PreparedStatement (geerbt von Statement);
c. CallableStatement (geerbt von PreparedStatement);
2) Verwenden Sie die Methode Connection.createStatement(), um ein Statement-Objekt abzurufen.
5. PreparedStatement-Objekt Antwort: 1) Der Aufruf von ProparedStatement ist effizienter als der Aufruf einer Anweisung.
2) Von Statement geerbt;
3) Syntax: PreparedStatement pstm = Connection.prepareStatement(sqlString);
6. CallableStatement-Objektantwort: 1) Rufen Sie die gespeicherte Prozedur in der Datenbank über CallableStatement auf;
2) Von PreparedStatement geerbt;
3) CallableStatement cstm = Connection.prepareCall("{call return_student[?,?]}");
cstm.setString(1,"8623034");
cstm.registerOutparameter(2, Types.REAL);
cstm.execute();
float gpa = cstm.getFloat(2);
7. Vergleich der Statement-Schnittstelle: |
-------------------------------------------------- --------------
Speicherort des Codes |. Client |
-------------------------------------------------- --------------
Codespeicherort |. serverseitig |
-------------------------------------------------- --------------
Codierungstechnologie |. Java, SQL-Operationen |. Datenbankprogrammiersprachen, wie PL/SQL
-------------------------------------------------- --------------
Konfigurierbarkeit |. Hoch beim ersten Mal, danach niedrig
-------------------------------------------------- --------------
Portabilität |. Hoch |. Hoch vorausgesetzt, PreparedStatement wird unterstützt
-------------------------------------------------- --------------
Übertragungseffizienz |. Niedrig zum ersten Mal, danach hoch