精品人妻无码一区二区三区软件 ,麻豆亚洲AV成人无码久久精品,成人欧美一区二区三区视频,免费av毛片不卡无码

您現(xiàn)在的位置是:首頁計算機應用論文

JDBC學習筆記!

發(fā)布時間: 1

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

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

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

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

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

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

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

9. 注冊一個Driver(步驟一)
答:1) driver被用于連接到數(shù)據(jù)庫;
   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. 建立一個到數(shù)據(jù)庫的連接(步驟二)
答:DriverManager調(diào)用getConnection(urlString)方法,實際上調(diào)用的是driver的connect(urlString)方法;
   1) 當一個driver肯定地對應到一個數(shù)據(jù)庫URL,DriverManager建立一個連接;
   2) 當沒有driver匹配,返回null然后下一個driver被檢驗;
   3) 假如沒有建立連接,拋出一個SQLExcepiton異常

2. 經(jīng)常使用的一些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) 創(chuàng)建一個到指定Driver實例的直接調(diào)用;
   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. 創(chuàng)建一個Statement(步驟三)
答:1) Statement的三個接口:
      a. Statement;
      b. PreparedStatement(繼承自Statement);
      c. CallableStatement(繼承自PreparedStatement);
   2) 使用方法Connection.createStatement()得到一個Statement對象

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

6. CallableStatement對象
答:1) 通過CallableStatement調(diào)用數(shù)據(jù)庫中的存儲過程;
   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操作              |  數(shù)據(jù)庫的程序語言,如PL/SQL
   ------------------------------------------------------------------------------
   可配置性     |   高                |第一次高,以后低           |  低
   ------------------------------------------------------------------------------
   可移植性     |   高                |假設支持PreparedStatement的話高
   ------------------------------------------------------------------------------
   傳輸效率     |   低                |第一次低,以后高           |  高

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

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

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

11. 數(shù)據(jù)表和類對應的三種關系:
答:1) 一個表對應一個類;
   2) 一個表對應相關類;
   3) 一個表對應整個類關系層

12. 類間關系的幾種表設計:
答:1) 多對一,
   2) 一對一:
   3) 一對多:
   4) 多對多:

13. SQL數(shù)據(jù)類型及其相應的Java數(shù)據(jù)類型
答:SQL數(shù)據(jù)類型                     Java數(shù)據(jù)類型              說明
   ------------------------------------------------------------------
   INTEGER或者INT                  int                     通常是個32位整數(shù)
   SMALLINT                        short                   通常是個16位整數(shù)
   NUMBER(m,n) DECIMAL(m,n)        Java.sql.Numeric        合計位數(shù)是m的定點十進制數(shù),小數(shù)后面有n位數(shù)
   DEC(m,n)                        Java.sql.Numeric        合計位數(shù)是m的定點十進制數(shù),小數(shù)后面有n位數(shù)
   FLOAT(n)                        double                  運算精度為n位二進制數(shù)的浮點數(shù)
   REAL                            float                   通常是32位浮點數(shù)
   DOUBLE                          double                  通常是64位浮點數(shù)
   CHARACTER(n)或CHAR(n)           String                  長度為n的固定長度字符串
   VARCHAR(n)                      String                  最大長度為n的可變長度字符串
   BOOLEAN                         boolean                 布爾值
   DATE                            Java.sql.Date           根據(jù)具體設備而實現(xiàn)的日歷日期
   TIME                            Java.sql.Time           根據(jù)具體設備而實現(xiàn)的時戳
   TIMESTAMP                       Java.sql.Timestamp      根據(jù)具體設備而實現(xiàn)的當日日期和時間
   BLOB                            Java.sql.Blob           二進制大型對象
   CLOB                            Java.sql.Clob           字符大型對象
   ARRAY                           Java.sql.Array

1. 元數(shù)據(jù)
答:關于數(shù)據(jù)的信息,例如類型或者容量。通過JDBC API可以訪問:
   1) 數(shù)據(jù)庫元數(shù)據(jù);
      a. 使用connection.getMetadata方法返回DataMetaData引用
      b. 能夠使用isReadOnly此類方法獲取信息
   2) 結果集元數(shù)據(jù);
      a. 使用ResultSet.getMetadata方法返回ResultSetMetaData引用
      b. 能夠使用getColumnCount此類方法獲取信息

2. 事務處理
答:1) 一系列的動作作為一個不可分的操作;
   2) JDBC API中使用事務處理步驟:
      a. 用false作為參數(shù)調(diào)用setAutoCommit方法;
      b. 執(zhí)行一或多個關于數(shù)據(jù)庫的操作;
      c. 調(diào)用commit方法完成改變;
      d. 恢復上次提交后的改變,調(diào)用rollback方法.

      try
      {
         con.setAutoCommit(false);
         Statement stm = con.createStatement();
         stm.executeUpdate("insert into student(name, age, gpa) values('gzhu', 30, 4.8)");
         stm.commit();
      }
      catch(SQLException e)
      {
         try
         {
            con.rollback();
         }
         catch(Exception e)
         {
         }
      }

3. 并發(fā)控制
答:1) 設置隔離級別方法:setTransactionIsolation
   2) 隔離級別靜態(tài)變量
      a. TRANSACTION_NONE:只讀的數(shù)據(jù)字典;
      b. TRANSACTION_READ_UNCOMMITTED:只讀未提交數(shù)據(jù);
      c. TRANSACTION_READ_COMMITTED:只讀未提交數(shù)據(jù);
      d. TRANSACTION_REPEATABLE_READ:重復讀取數(shù)據(jù);
      e. TRANSACTION_SERIALIZABLE:無論做什么操作都不許別人動。
   3) 示例:con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);

4. JDBC 2.0 應用程序編程接口增強功能
答:1) ResultSet增強:
      a. 可以回卷;
      b. 可以修改;
      設置示例:Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
   2) Statement增強了批量修改能力(batch updates);
   3) 更高級的數(shù)據(jù)類型(例:Struct)。

5. JDBC 2.0標準擴展
答:1) JNDI(Java Naming and Directory Interface): 解決離散狀態(tài)下Object的查找;
   2) 連接池:在內(nèi)存中保存了一個數(shù)據(jù)庫連接,不需要注冊驅動器,提高性能的重要方法。





轉載請注明來自:http://www.jinnzone.com/jisuanjiyingyonglw/159.html