讀取數(shù)據(jù)庫的數(shù)據(jù)必須掌握ResultSet對象的屬性和方法。
?
常用get方法對行中的數(shù)據(jù)進行訪問
int getInt(int columnIndex)
int getInt(String columnName)
Date getDate(int columnIndex)
Date getDate(String columnName)
Public String getString(int columnIndex)
Public String getString(String columnName)
?
數(shù)據(jù)庫基本訪問格式
Class.forName(“JDBC驅(qū)動程序");
Connection con= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(結(jié)果集類型,結(jié)果集并發(fā)性);
ResultSet rs=stmt.executeQuery(DQL語句); 查詢
stmt.executeUpdate(DML語句);操作
?
結(jié)果集
Statement對象創(chuàng)建的常見用法
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
結(jié)果集類型
決定這個Statement對象創(chuàng)建的Rs對象是否可以滾動,是否對數(shù)據(jù)庫中的修改敏感。
ResultSet.TYPE_FORWORD_ONLY(默認值)
ResultSet.TYPE_SCROLL_INSENSITIVE(可滾動,不敏感)
ResultSet.TYPE_SCROLL_SENSITIVE(可滾動,敏感)
結(jié)果集并發(fā)性
決定Rs是否可以修改數(shù)據(jù)庫中的行。
ResultSet.CONCUR_READ_ONLY(不可修改默認)
ResultSet.CONCUR_UPDATABLE(可以修改)
?
使用Rs更新,也可以實現(xiàn)添加、刪除和修改。
對敏感與否的解釋
rs對結(jié)果集的修改有兩種。
內(nèi)部修改:可更新結(jié)果集的修改,指rs的值變了。
外部修改:其它的程序修改了結(jié)果集原來讀取的行,指數(shù)據(jù)庫修改了。
由于修改導致結(jié)果集和原來的值不同。
修改對結(jié)果集的影響如下表:
但是我們可以使用ResultSet對象的refreshRow()方法刷新結(jié)果集的當前行,覆蓋默認的可見性。將所有的否都變?yōu)槭恰?
更新:
rs.absolute(3);//定位更新哪一行
rs.updateInt(“數(shù)學”,100);//更新記錄集
rs.updateRow();//將更新發(fā)送到數(shù)據(jù)庫
刪除:
rs.absolute(3);//定位要刪除的行
rs.deleteRow();//將刪除發(fā)送到數(shù)據(jù)庫
添加:
rs.moveToInsertRow();//首先調(diào)用moveToInsertRow()創(chuàng)建新行
rs.updateInt(“數(shù)學”,100);//利用update設置新行的值
rs.updateString(“姓名”,“張三”);
rs.insertRow();//將新行發(fā)送到數(shù)據(jù)庫
?
光標的維護方法 :
在JDBC1.0中,光標只能利用next方法向前移動一條記錄,在2.0中,增加了可滾動結(jié)果集,使其可以任意跳轉(zhuǎn)。
next()下一條,true/false
previous()前一條,true/false
first()第一條true/false
last()最后一條true/false
beforeFirst()第一條之前true/false
afterLast()最后一行后面true/false
absolute(int num)移動到指定行,若指定為負數(shù),則從最后一行向前移動。
Relative( int relativeRowNumber)移動到當前行的相對行,參數(shù)可以為負數(shù),指當前行之前的行。
?
在使用可滾動結(jié)果集方法移動時,如果不清楚當前位置,可以使用如下方法:
getRow()? 返回當前行,若無,則0
isfirst()?? true/false
isLast()??? true/false
isBeforeFirst() true/false
isAfterLast() true/false
例:使用javabean和resultSet讀取數(shù)據(jù)庫。
準備:
創(chuàng)建數(shù)據(jù)庫dataBase,用戶名sa,密碼sa
創(chuàng)建表userlist(id,username,addtime)
id:int 主鍵,標識,自動增加1
username:nvarchar
addtime:smalldatetime,默認值getdate()
隨意添加幾條數(shù)據(jù)用來測試
ceshi_sql.jsp用來測試sql是否聯(lián)結(jié)成功
index.jsp使用了javabean連接數(shù)據(jù)庫
?
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

