認識JDBC 2 0中的高階資料型別

2021-04-17 08:54:43 字數 2134 閱讀 6111

jdbc 2.0中提供了對sql3標準中引入的新的資料型別,如blob(binary large object)、clob(character large object)、array 物件、ref(物件參考,object reference)和 udt(使用者定義資料型別,user-defined datatype)等的支援。這些新的資料型別結合在一起,使得資料庫設計人員可以建立更豐富的模式,並簡化了對複雜資料的處理和持久化。

例如,我們要向tbl_user表中插入使用者的**,這時就可以使用流將blob物件匯入資料庫中:

其中sql語句的第乙個引數為使用者名稱,第二個引數為photo,它是乙個blob型物件。這樣在將資料插入資料庫之後,我們就可以用程式獲取該資料了:

string sql = "select photo from tbl_user where username = ?";

preparedstatement pstmt = con.preparestatement(selectsql) ;

pstmt.setstring(1, "john");

resultset rs = pstmt.executequery() ;

rs.next();

blob blob = rs.getblob("photo") ;

imageicon icon = new imageicon(blob.getbytes(1, (int)blob.length())) ;

jlabel photo = new jlabel(icon);

rs.close();

pstmt.close();

類似地,我們也可以對clob物件進行相應的操作。下面是乙個從 ascii 流中直接將 clob物件插入資料庫中的例子:

string sql = "insert into tbl_articles values(?,?)";

preparedstatement pstmt = con.preparestatement(sql) ;

file file = new file("c:/data/news.txt") ;

fileinputstream fis = new fileinputstream(file);

pstmt.setstring(1, "iraq war");

pstmt.setasciistream(2, fis, (int)file.length());

pstmt.executeupdate();

pstmt.close();

fis.close();

同樣,我們也可以用類似的方法將clob物件從資料庫中取出:

string sql = "select content from tbl_articles where title = ?";

preparedstatement pstmt = con.preparestatement(sql) ;

pstmt.setstring(1, "iraq war");

resultset rs = pstmt.executequery() ;

rs.next() ;

clob clob = rs.getclob("content") ;

inputstreamreader in = new inputstreamreader(clob.getasciistream()) ;

jtextarea text = new jtextarea(readstring(in)) ;

rs.close();

pstmt.close();

java資料庫程式設計 jdbc2 0操作

一,本章目標 了解jdbc2.0提供的主要新特性 了解可滾動結果集的操作 了解結果集的增加,修改,刪除操作 掌握批處理操作 二,具體內容 在jdbc2.0中加強了resultset功能,可以直接使用resultset執行更新操作,或者實現雙向滾動。在jdbc2.0中有乙個最重要的概念就是批處理,可以...

(JDBC)20 事務的概念與JDBC事務處理

1.原子性 組成事務處理的語句形成了乙個邏輯單元,不能只執行其中的乙個部分 2.一致性 在事務處理執行前後,資料庫是一致的 資料庫資料完整性約束 3.隔離性 乙個事務處理對另乙個事物處理的影響 4.持續性 事務處理的效果能夠永久儲存下來 connection.setautocommit false ...

Java中的String類的認識

一般將字串如 abc 直接稱為string物件其實它是string物件的一部分 字元陣列屬性的值 string類的例項化 1 string a abc 在常量池中用一塊字元陣列放乙個字串 abc a變數存該字串的引用!2 string a new string abc 在常量池中用一塊字元陣列放乙個...