一、可滾動、可更新的結果集
可滾動結果集:使用absolute()、previous()、afterlast()、last()等方法自由移動記錄指標的resultset被稱為可滾動的結果集
以預設的方式打來的resultset是不可更新的,要想建立可更新的resultset,必須在建立statement或preparedstatement時傳入額外的引數。resultsettype:控制resultset的型別,該引數可以取如下三個值:resultset.type_forward_only:該常量控制記錄指標只能向前移動
resultset.type_scroll_insensitive:該常量控制記錄指標可以自由移動(可滾動結果集),但底層資料的改變不會影響resultset的內容
resultset.type_scroll_sensitive:該常量控制記錄指標可以自由移動(可滾動結果集),而且底層資料的改變會影響resultset的內容。
resultsetconcurrency:控制resultset的併發型別
resultset.concur_read_only:該常量指示resultset是唯讀的併發模式(預設)
resultset.concur_updateble:該常量指示resultset是可更新的併發模式。
注意:可更新的結果集需滿足兩個條件:
所有資料都來自同一張表
選出的資料集必須包含主鍵
程式可呼叫resultset的update***(int columnindex, *** value)方法來修改記錄指標所指的值,最後呼叫r惡俗set的updaterow()方法提交修改。
示例**:
connection conn = drivermanager.getconnection(url,user,pass);
preparedstatement pstmt = conn.preparestatement(sql, resultset.type_scroll_insentsitive, resultset.concur_updatable);
resultset rs=pstmt.executequery();
rs.last();
int rowcount=rs.getrow();
for(int i=rowcount;i>0;i--)
二、處理blob型別資料
blob是二進位製長物件的意思,blob列用於儲存大檔案,典型的內容是一張或乙個聲音檔案。使用blob列可以吧、聲音等檔案的二進位制資料儲存在資料庫裡面,並可以從資料庫裡恢復指定檔案。
將插入資料庫:將blob資料插入資料庫需要使用preparedstatement,該物件有乙個方法:setbinarysteam(int parameterindex, inputstream x),該方法 指定引數傳入二進位制輸入流,從而可以實現將blob資料儲存到資料庫的功能
從resultset裡取出blob資料:可以呼叫resultset的getblob(int columnindex)方法,該方法將返回乙個blob物件,blob物件提供了getbinarystream()方法來獲取該blob資料的輸入流,也可以使用blob物件提供的getbytes()方法直接取出該blob物件封裝的二進位制資料。
**示例:
將指定放入資料庫
//擷取檔名
string imagename = filename.substring(filename.lastindexof(『\\』)+1,filename.lastindexof(『.』));
file f=new file(filename);
try(inputstream is=new fileinputstream(f))
catch(exception e)
根據id顯示
//設定引數
preparedstatement query;
query = conn.preparestatement(「select image_date from img_table」+」where img_id=?」);
query.setint(1,id);//將id設為1
try(resultset rs=query.executequery())
}三、使用resultsetmetadata分析資料結果集
resultsetmetadata可以獲取關於resultset的描述資訊。resultset裡包含乙個getmetadata()方法,該方法返回的該resultset對應的resultsetmetadata物件,獲得該物件後,就可以通過resultsetmetadata提供的方法返回resultset的描述資訊。常用的方法有三個:
int getcolumncount():返回該resultset的列數量
string getcolumnname(int column):返回指定索引的列名
int getcolumntype(int column):返回指定索引的列型別。
資料庫系列之資料庫管理 1
master資料庫 儲存sql server系統的所有系統級資訊。包括 登入帳戶 連線伺服器和系統配置設定 master資料庫記錄所有其他資料庫及這些資料庫檔案位置 大小 資料表的相關資訊 還記錄sql server的初始化資訊。如果master資料庫不可用,則sql server無法啟動。mode...
Java 面試之資料庫
資料庫事務是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。事務滿足以下四大特性 原子性 atomicity 乙個事務中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾到事務開始前的狀態。一致性 consistency 在...
Oracle資料庫之DML(資料庫管理語言)
插入資料 insert into 更新資料 update set 更新一豎列 update userinfo set m 更新指定列 update userinfo set m where userinfoid 0003 update userinfo set m where nickname li...