Java資料庫之管理資料集

2021-08-26 23:39:52 字數 2497 閱讀 9111

一、可滾動、可更新的結果集

可滾動結果集:使用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...