JSP中使用Java的JDBC技術實現對資料庫的各種操作

來源:互聯網
上載者:User

在JSP 中可以使用Java 的JDBC 技術,實現對資料庫中表記錄的查詢、修改和刪除等操作。JDBC 技術在JSP 開發中佔有很重要的地位。

JDBC(Java DataBase Connectivity)是Java 資料庫連接API。簡單地說,

JDBC 能完成三件事:

(1) 與一個資料庫建立串連,

(2) 向資料庫發送SQL 陳述式,

(3) 處理資料庫返回的結果。

JDBC 和資料庫建立串連的一種常見方式是建立起一個JDBC─ODBC 橋接器。由於ODBC 驅動程式被廣泛的使用,建立這種橋接器後,使得JDBC 有能力訪問幾乎所

有類型的資料庫。JDBC 也可以直接載入資料庫驅動程式訪問資料庫,

如果使用 JDBC─ODBC 橋接器訪問資料庫,事先必須設定資料來源。

1 資料來源

利用系統建立一個ODBC資料來源。

2.JDBC-ODBC 橋接器

建立一個JDBC─ODBC 橋接器,即載入橋接器驅動程式。

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Class 是包java.lang 中的一個類,該類通過調用它的靜態方法forName 就可以建立JDBC-ODBC 橋接器。

3 查詢記錄

(1)串連到資料庫

首先使用包 java.sql 中的Connection 類聲明一個對象,然後再使用類DriverManager 調用它的靜態方法getConnection 建立這個連線物件:

本欄目更多精彩內容:http://www.bianceng.cn/webkf/JSP/

Connection con = DriverManager.getConnection("jdbc:odbc:資料來源名字","login name", "password ");

(2)向資料庫發送SQL 陳述式。

首先使用 Statement 聲明一個SQL 陳述式對象,然後通過剛才建立的串連資料庫的對象con 調用方法createStatment()建立這個SQL 陳述式對象。

Statement sql=con.createStatement();

(3)處理查詢結果

有了 SQL 陳述式對象後,這個對象就可以調用相應的方法實現對資料庫中表的查詢和修改。並將查詢結果存放在一個ResultSet 類聲明的對象中,

也就是說SQL 陳述式對資料庫的查詢操作將返回一個ResultSet 對象:

ResultSet rs=sql.executeQuery("SELECT * FROM 成績表");

ResultSet 對象是以統一形式的列組織的資料行組成。ResultSet 對象一次只能看到一個資料行,使用next()方法走到下一資料行,獲得一行資料後,

ResultSet 對象可以使用getxxxx 方法獲得欄位值,將位置索引(第一列使用1,第二列使用2 等等)或欄位名傳遞給getxxxx方法的參數即可

使用結果集Result 的next()方法,可以順序的查詢。一個結果集將遊標最初定位在第一行的前面,第一次調用next()方法使遊標移動到第一行。

next()方法返回一個boolean 型資料,當遊標移動到最後一行之後返回false。

可滾動的結果集:

Statement stmt=con.createStatement(int type ,int concurrency);

根據參數的 type、concurrency 的取值情況,stmt 返回相應類型的結果集:

type 的取值決定滾動方式,取值可以是:

ResultSet.TYPE_FORWORD_ONLY :結果集的遊標只能向下滾動。

ResultSet.TYPE_SCROLL_INSENSITIVE :結果集的遊標可以上下移動,當資料庫變化時,當前結果集不變。

ResultSet.TYPE_SCROLL_SENSITIVE :返回可滾動的結果集,當資料庫變化時,當前結果集同步改變。

Concurrency 取值決定是否可以用結果集更新資料庫,Concurrency 取值:

ResultSet.CONCUR_READ_ONLY:不能用結果集更新資料庫中的表。

ResultSet.CONCUR_UPDATETABLE:能用結果集更新資料庫中的表。

滾動查詢經常用到 ResultSet 的下述方法:

public boolean previous():將遊標向上移動,該方法返回boolean 型資料,當移到結果集第一行之前時返回false.

public void beforeFirst():將遊標移動到結果集的初始位置,即在第一行之前。

public void afterLast():將遊標移到結果集最後一行之後。

public void first():將遊標移到結果集的第一行。

public void last():將遊標移到結果集的最後一行。

public boolean isAfterLast():判斷遊標是否在最後一行之後。

public boolean isBeforeFirst():判斷遊標是否在第一行之前

public boolean ifFirst():判斷遊標是否指向結果集的第一行。

public boolean isLast():判斷遊標是否指向結果集的最後一行。

public int getRow():得到當前遊標所指行的行號,行號從1 開始,如果結果集沒有行,返回0

public boolean absolute(int row):將遊標移到參數row 指定的行號。

注意:如果row 取負值,就是倒數的行數,absolute(-1)表示移到最後一行,absolute(-2)表示移到倒數第2 行。當移動到第一行前面或

最後一行的後面時,該方法返回false。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.