幾個重要的java數據庫訪問類和接口

編寫訪問數據庫的Java程序還須要幾個重要的類和接口。java

DriverManager類

DriverManager類處理驅動程序的加載和創建新數據庫鏈接。DriverManager是java.sql包中用於管理數據庫驅動程序的類。一般,應用程序只使用類DriverManager的getConnection()靜態方法,用來創建與數據庫的鏈接,返回Connection對象:
    static Connection getConnection(String url,String username,String password)
指定數據的URL用戶名和密碼建立數據庫鏈接對象。url的語法格式是:
    jdbc:<數據庫的鏈接機制>:<ODBC數據庫名>。sql

Connection類

Connection類是java.sql包中用於處理與特定數據庫鏈接的類。Connection對象是用來表示數據庫鏈接的對象,Java程序對數據庫的操做都在這種對象上進行。Connection類的主要方法有:數據庫

  1. Statement createStatement():建立一個Statement對象。
  2. Statement createStatement(int resultSetType,int resultSetConcurrency):建立一個Statement對象,生成具備特定類型的結果集。
  3. void commit():提交對數據庫的改動並釋放當前持有的數據庫的鎖。
  4. void rollback():回滾當前事務中的全部改動並釋放當前鏈接持有的數據庫的鎖。
  5. String getCatalog():得到鏈接對象的當前目錄。
  6. boolean isClose():判斷鏈接是否已關閉。
  7. boolean isReadOnly():判斷鏈接是否爲只讀模式。
  8. void setReadOnly():設置鏈接爲只讀模式。
  9. void close():釋放鏈接對象的數據庫和JDBC資源。

Statement類

Statement類是java.sql包中用於在指定的鏈接中處理SQL語句的類。數據庫編程的要點是在程序中嵌入SQL命令。程序須要聲明和建立鏈接數據庫的Connection對象,並讓該對象鏈接數據庫。調用類DriverManager的靜態方法getConnection()得到Connection對象,實現程序與數據庫的連。而後,用Statement類聲明SQL語句對象,並調用Connection對象的createStatement()方法,建立SQL語句對象。例如,如下代碼建立語句對象sql:
    Statement sql = null;
    try{
        sql = con.createStatement();
    }catch(SQLException e){}編程

ResultSet類

有了SQL語句對象後,調用語句對象的方法executeQuery()執行SQL查詢,並將查詢結果存放在一個用ResultSet類聲明的對象中,例如,如下代碼讀取學生成績表存於rs 對象中:
    ResultSet rs = sql.executeQuery(「SELECT * FROM ksInfo」);
ResultSet對象其實是一個由查詢結果數據的表,是一個管式數據集,由統一形式的數據行組成,一行對應一條查詢記錄。在ResultSet對象中隱含着一個遊標,一次只能得到遊標當前所指的數據行,用next方法可取下一個數據行。用數據行的字段(列)名稱或位置索引(自1開始)調用形如getXXX()方法得到記錄的字段植 。如下是ResultSet對象的部分方法:url

  1. byte getByte(int columnIndex):返回指定字段的字節值。
  2. Date getDate(int columnIndex):返回指定字段的日期值。
  3. float getFloat(int columnIndex):返回指定字段的浮點值。
  4. int getInt(int columnIndex):返回指定字段的整數值。
  5. String getString(int columnIndex):返回指定字段的字符串值。
  6. double getDouble(String columnName):返回指定字段的雙精度值。
  7. long getLong(String columnName):返回指定字段的long型整值。
  8. boolean next():返回是否還有下一字段。

以上方法中的columnIndex是位置索引,用於指定字段,columnName是字段名。

用戶須要在查詢結果集上瀏覽,或先後移動、或顯示結果集的指定記錄,這稱爲可滾動結果集。程序要得到一個可滾動結果集,只要在得到SQL的語句對象時,增長指定結果集的兩個參數便可。例如,如下代碼:
    Statement stmt = con.createStatement(type,concurrency);
    ResultSet rs = stmt.executeQuery(SQL語句)
語句對象stmt的SQL查詢就能獲得相應類型的結果集。spa

  • int 型參數type決定可滾動集的滾動方式:
    • ResultSet.TYPE_FORWORD_ONLY,結果集的遊標只能向下滾動。
    • ResultSet.TYPE_SCROLL_INSENSITIVE,遊標可上下移動,當數據庫變化時,當前結果集不變。
    • ResultSet. TYPE_SCROLL_SENSITIVE,遊標可上下移動,當數據庫變化時,當前結果集同步改變。
  • int 型參數concurrency決定數據庫是否與可滾動集同步更新:
    • ResultSet.CONCUR_READ_ONLY,不能用結果集更新數據庫中的表。
    • ResultSet.CONCUR_UPDATETABLE,能用結果集更新數據庫中的表。


例如,如下代碼利用鏈接對象connect,建立Statement對象stmt,指定結果集可滾動,並以只讀方式讀數據庫:
    stmt = connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
可滾動集上另一些經常使用的方法以下:對象

  1. boolean previous():將遊標向上移動,當移到結果集的第一行時,返回false。
  2. void beforeFirst():將遊標移結果集的第一行以前。
  3. void afterLast():將遊標移到結果集的最後一行以後。
  4. void first():將遊標移到第一行。
  5. void last():將遊標移到最後一行。
  6. boolean isAfterLast():判遊標是否在最後一行以後。
  7. boolean isBeforeFirst():判遊標是否在第一行以前。
  8. boolean isLast():判遊標是否在最後一行。
  9. boolean isFirst():判遊標是否在第一行。
  10. int getRow():獲取當前所指的行(行號自1開始編號,結果集空,返回0)。
  11. boolean absolute(int row):將遊標移到row行。
相關文章
相關標籤/搜索