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 在常量池中用一塊字元陣列放乙個...