java資料庫訪問類和介面

來源:互聯網
上載者:User

標籤:

編寫訪問資料庫的Java程式還需要幾個重要的類和介面。

DriverManager類

DriverManager類處理驅動程式的載入和建立新資料庫連接。DriverManager是java.sql包中用於管理資料庫驅動程式的類。通常,應用程式只使用類DriverManager的getConnection()靜態方法,用來建立與資料庫的串連,返回Connection對象:
    

static Connection getConnection(String url,String username,String password)

指定資料的URL使用者名稱和密碼建立資料庫連接對象。url的文法格式是:

    jdbc:<資料庫的串連機制>:<ODBC資料庫名>。

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:

1     Statement sql = null;2     try{3         sql = con.createStatement();4     }catch(SQLException e){}

 

ResultSet類

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

  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查詢就能得到相應類型的結果集。

  • 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行。轉自<http://www.cnblogs.com/Coda/p/4608359.html>

java資料庫訪問類和介面

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.