程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> JDBC學習筆記

JDBC學習筆記

編輯:關於PHP編程

l. 連接到數據庫的方法
答:1) ODBC(Open Database Connectivity)
      一個以C語言為基礎訪問SQL為基礎數據庫引擎的接口,它提供了一致的接口用於和數據庫溝通以及訪問數據。
   2) JDBC
      Java版本的ODBC

2. JDBC應用編程接口
答:JDBC應用編程接口是:
   1) 標准的數據訪問接口,可以連到不同的數據庫;
   2) JAVA編程語言的一組類和接口。
   JDBC應用編程接口能夠:
   1) 連接到數據庫;
   2) 發SQL查詢字符串到數據庫;
   3) 處理結果。
   JDBC應用編程接口有二個主要的部分:
   1) JAVA應用程序開發接口面向JAVA應用程序開發者;
   2) JDBC驅動程序開發接口
   
3. JDBC Driver
答:1) 一大堆實現了JDBC類和接口的類;
   2) 提供了一個實現java.sql.Driver接口的類。

4. JDBC Driver的四種類型
答:1) JDBC-ODBC橋
   由ODBC驅動提供JDBC訪問
   2) 本地API
   部分Java driver把JDBC調用轉化成本地的客戶端API
   3) JDBC-net
   純的Java driver,將JDBC調用轉入DBMS,與網絡協議無關。然後通過服務器將調用轉為DBMS協議。
   4) 本地協議
   純的java driver,將JDBC調用直接轉為DBMS使用的網絡協議

5. JDBC開發者接口
答:1) java.sql--java 2平台下JDBC的主要功能,標准版(J2SE)
   2) javax.sql--java 2平台下JDBC增強功能,企業版(J2EE)

6. 使用URL確認數據庫
答:我們使用URL來確定一個數據庫(正確的Driver,正確的主機,正確的協議,正確的協議,正確的用戶名和密碼);
   語法:protocol:subprotocol:subname
   范例:jdbc:db2:MyTest
         jdbc:db2://localhost:6789/MyTest

7. javax.sql包JDBC2.0的增強功能
答:1) 數據源接口;
   2) 連接池;
   3) 分布式交易;
   4) 行集;

8. 創建一個基本的JDBC應用
答:1) 步驟一:注冊一個driver;
   2) 步驟二:建立一個到數據庫的連接;
   3) 步驟三:創建一個statement;
   4) 步驟四:執行SQL語句;
   5) 步驟五:處理結果;
   6) 步驟六:關閉JDBC對象

9. 注冊一個Driver(步驟一)
答:1) driver被用於連接到數據庫;
   2) JDBC應用編程接口使用第一個能成功連接到給定URL的driver;
   3) 在同一時間可以裝載多個driver

10.注冊一個driver的方法:
答:1) 使用類loader(裝載;實例化;注冊入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) 實例化一個Driver
      a. Driver drv = new COM.cloudscape.core.RmiJdbcDriver();

1. 建立一個到數據庫的連接(步驟二)
答:DriverManager調用getConnection(urlString)方法,實際上調用的是driver的connect(urlString)方法;
   1) 當一個driver肯定地對應到一個數據庫URL,DriverManager建立一個連接;
   2) 當沒有driver匹配,返回null然後下一個driver被檢驗;
   3) 假如沒有建立連接,拋出一個SQLExcepiton異常

2. 經常使用的一些JDBC URL
答:1) JDBC-ODBC: jdbc:odbc:<DB>
   2) Oracle: jdbc:oracle:oci:@<sid> or jdbc:oracle:thin:@<SID>
   3) Weblogic MS-SQL: jdbc:weblogic:mssqlserver4:<DB>@<HOST>:<PORT>
   4) DB2: jdbc:db2:MyTest or jdbc.db2://localhost:6789/MyTest(需要用戶名和密碼)

3. Driver連接方法
答:1) 創建一個到指定Driver實例的直接調用;
   2) 避免一般訪問的問題
      Driver drv = new COM.ibm.db2.jdbc.app.DB2Driver();
      Connection con = null;
      try {con = drv.connect("jdbc:db2:MyTest",new Properties())}
      catch(SQLException e){}

4. 創建一個Statement(步驟三)
答:1) Statement的三個接口:
      a. Statement;
      b. PreparedStatement(繼承自Statement);
      c. CallableStatement(繼承自PreparedStatement);
   2) 使用方法Connection.createStatement()得到一個Statement對象

5. PreparedStatement對象
答:1) 調用ProparedStatement比statement更為高效;
   2) 繼承自Statement;
   3) 語法:PreparedStatement pstm = connection.prepareStatement(sqlString);

6. CallableStatement對象
答:1) 通過CallableStatement調用數據庫中的存儲過程;
   2) 繼承自PreparedStatement;
   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. Statement接口的比較
答:             | Statement           | PreparedStatement         |  CallableStatement
   ------------------------------------------------------------------------------
   寫代碼位置   |   客戶端            | 客戶端                    |  服務器端
   ------------------------------------------------------------------------------
   寫代碼位置   |   客戶端            | 服務器端                  |  服務器端
   ------------------------------------------------------------------------------
   編寫代碼技術 |Java,SQL操作        |Java,SQL操作              |  數據庫的程序語言,如PL/SQL
   ------------------------------------------------------------------------------
   可配置性     |   高                |第一次高,以後低           |  低
   ------------------------------------------------------------------------------
   可移植性     |   高                |假設支持PreparedStatement的話高
   ------------------------------------------------------------------------------
   傳輸效率     |   低                |第一次低,以後高           |  高

8. 執行SQL Statement(步驟四)
答:通過接口方法將SQL語句傳輸至黙認的數據庫連接,返回結果可能是一個數據表,可以通過java.sql.ResultSet訪問。
   1) Statement的接口方法:
   a. executeQuery(sqlString): 執行給定的SQL聲明,返回一個結果集(ResultSet)對象;
   b. executeUpdate(sqlString): 執行給定的SQL聲明,可以是INSERT、UPDATE或DELETE聲明,也可以是SQL DDL聲明;
   c. execute(sqlString): 執行給定的SQL聲明。

9. 處理結果(步驟五)
答:1) 使用結果集(ResultSet)對象的訪問方法獲取數據;
      a. next():下一個記錄
      b. first():第一個記錄
      c. last():最後一個記錄
      d. previous():上一個記錄
   2) 通過字段名或索引取得數據
   3) 結果集保持了一個指向了當前行的指針,初始化位置為第一個記錄前。

10. 關閉JDBC對象(步驟六)
答:1) 首先關閉記錄集;
   2) 其次關閉聲明;
   3) 最後關閉連接對象。

11. 數據表和類對應的三種關系:
答:1) 一個表對應一個類;
   2) 一個表對應相關類;
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved