- 相關(guān)推薦
JAVA認(rèn)證基礎(chǔ)知識:JSP使用數(shù)據(jù)庫操作
在JSP 中可以使用Java 的JDBC 技術(shù),實現(xiàn)對數(shù)據(jù)庫中表記錄的查詢、修改和刪除等操作。JDBC 技術(shù)在JSP 開發(fā)中占有很重要的地位。
JDBC(Java DataBase Connectivity)是Java 數(shù)據(jù)庫連接API.簡單地說,
JDBC 能完成三件事:
(1) 與一個數(shù)據(jù)庫建立連接,
(2) 向數(shù)據(jù)庫發(fā)送SQL 語句,
(3) 處理數(shù)據(jù)庫返回的結(jié)果。
JDBC 和數(shù)據(jù)庫建立連接的一種常見方式是建立起一個JDBC─ODBC 橋接器。由于ODBC 驅(qū)動程序被廣泛的使用,建立這種橋接器后,使得JDBC 有能力訪問幾乎所有類型的數(shù)據(jù)庫。JDBC 也可以直接加載數(shù)據(jù)庫驅(qū)動程序訪問數(shù)據(jù)庫,如果使用 JDBC─ODBC 橋接器訪問數(shù)據(jù)庫,事先必須設(shè)置數(shù)據(jù)源。
1.數(shù)據(jù)源
利用系統(tǒng)建立一個ODBC數(shù)據(jù)源。
2.JDBC-ODBC 橋接器
建立一個JDBC─ODBC 橋接器,即加載橋接器驅(qū)動程序。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class 是包java.lang 中的一個類,該類通過調(diào)用它的靜態(tài)方法forName 就可以建立JDBC-ODBC 橋接器。
3.查詢記錄
(1)連接到數(shù)據(jù)庫
首先使用包 java.sql 中的Connection 類聲明一個對象,然后再使用類DriverManager 調(diào)用它的靜態(tài)方法getConnection 創(chuàng)建這個連接對象:
Connection con = DriverManager.getConnection("jdbc:odbc:數(shù)據(jù)源名字","login name", "password ");
(2)向數(shù)據(jù)庫發(fā)送SQL 語句。
首先使用 Statement 聲明一個SQL 語句對象,然后通過剛才創(chuàng)建的連接數(shù)據(jù)庫的對象con 調(diào)用方法createStatment()創(chuàng)建這個SQL 語句對象。
Statement sql=con.createStatement();
(3)處理查詢結(jié)果
有了 SQL 語句對象后,這個對象就可以調(diào)用相應(yīng)的方法實現(xiàn)對數(shù)據(jù)庫中表的查詢和修改。并將查詢結(jié)果存放在一個ResultSet 類聲明的對象中,也就是說SQL 語句對數(shù)據(jù)庫的查詢操作將返回一個ResultSet 對象:
ResultSet rs=sql.executeQuery("SELECT * FROM 成績表");
ResultSet 對象是以統(tǒng)一形式的列組織的數(shù)據(jù)行組成。ResultSet 對象一次只能看到一個數(shù)據(jù)行,使用next()方法走到下一數(shù)據(jù)行,獲得一行數(shù)據(jù)后,
ResultSet 對象可以使用getxxxx 方法獲得字段值,將位置索引(第一列使用1,第二列使用2 等等)或字段名傳遞給getxxxx方法的參數(shù)即可
使用結(jié)果集Result 的next()方法,可以順序的查詢。一個結(jié)果集將游標(biāo)最初定位在第一行的前面,第一次調(diào)用next()方法使游標(biāo)移動到第一行。
next()方法返回一個boolean 型數(shù)據(jù),當(dāng)游標(biāo)移動到最后一行之后返回false.
可滾動的結(jié)果集:
Statement stmt=con.createStatement(int type ,int concurrency);
根據(jù)參數(shù)的 type、concurrency 的取值情況,stmt 返回相應(yīng)類型的結(jié)果集:
type 的取值決定滾動方式,取值可以是:
ResultSet.TYPE_FORWORD_ONLY :結(jié)果集的游標(biāo)只能向下滾動。
ResultSet.TYPE_SCROLL_INSENSITIVE :結(jié)果集的游標(biāo)可以上下移動,當(dāng)數(shù)據(jù)庫變化時,當(dāng)前結(jié)果集不變。
ResultSet.TYPE_SCROLL_SENSITIVE :返回可滾動的結(jié)果集,當(dāng)數(shù)據(jù)庫變化時,當(dāng)前結(jié)果集同步改變。
Concurrency 取值決定是否可以用結(jié)果集更新數(shù)據(jù)庫,Concurrency 取值:
ResultSet.CONCUR_READ_ONLY:不能用結(jié)果集更新數(shù)據(jù)庫中的表。
ResultSet.CONCUR_UPDATETABLE:能用結(jié)果集更新數(shù)據(jù)庫中的表。
滾動查詢經(jīng)常用到 ResultSet 的下述方法:
public boolean previous():將游標(biāo)向上移動,該方法返回boolean 型數(shù)據(jù),當(dāng)移到結(jié)果集第一行之前時返回false.
public void beforeFirst():將游標(biāo)移動到結(jié)果集的初始位置,即在第一行之前。
public void afterLast():將游標(biāo)移到結(jié)果集最后一行之后。
public void first():將游標(biāo)移到結(jié)果集的第一行。
public void last():將游標(biāo)移到結(jié)果集的最后一行。
public boolean isAfterLast():判斷游標(biāo)是否在最后一行之后。
public boolean isBeforeFirst():判斷游標(biāo)是否在第一行之前
public boolean ifFirst():判斷游標(biāo)是否指向結(jié)果集的第一行。
public boolean isLast():判斷游標(biāo)是否指向結(jié)果集的最后一行。
public int getRow():得到當(dāng)前游標(biāo)所指行的行號,行號從1 開始,如果結(jié)果集沒有行,返回0
public boolean absolute(int row):將游標(biāo)移到參數(shù)row 指定的行號。
注意:如果row 取負(fù)值,就是倒數(shù)的行數(shù),absolute(-1)表示移到最后一行,absolute(-2)表示移到倒數(shù)第2 行。當(dāng)移動到第一行前面或最后一行的后面時,該方法返回false。
【JAVA認(rèn)證基礎(chǔ)知識:JSP使用數(shù)據(jù)庫操作】相關(guān)文章:
sun認(rèn)證考試輔導(dǎo):java關(guān)于多線程的部分操作07-25
JAVA認(rèn)證基礎(chǔ)知識:基于反射機(jī)制的服務(wù)代理調(diào)用07-18
sun認(rèn)證JSP應(yīng)用開發(fā)背景及特點07-26
2016年Linux認(rèn)證基礎(chǔ)知識:mysql數(shù)據(jù)庫的全量備份10-04
Sun java認(rèn)證考試答案10-23
java認(rèn)證考試培訓(xùn)內(nèi)容08-21
sun認(rèn)證java程序員08-05