javaclob存儲
Ⅰ oracle資料庫超長文本用哪種類型儲存比較好
clob類型,但對於這個類型處理起來還是比較麻煩的,varchar2長度為4000bytes,如果varchar2能滿足樓主的需求,建議使用varchar2,下面提供了在java 中讀取clob類型的方式,我主要講的是JDBC的操作,Hibernate目前不講,操作這個Clob列主要分為插入和獲取倆個操作:
1、Java程序插入Clob值到Oracle資料庫表中:
String clob= "這里主要是要插入到表中的值";//前面具體資料庫連接代碼這里省略,直接進正題String sql = "insert into clob_test(id,str) values (1,?)";PreparedStatement stmt = conn.prepareStatement(sql);// 將clob轉成流形式
Reader clobReader = new StringReader(clob);stmt.setCharacterStream(1,clobReader,clob.length());// 替換sql語句中的?
stmt.executeUpdate();
2、讀取Clob列的值
String sql = "select str from clob_test where id=1";PreparedStatement stmt = conn.prepareStatement(sql);ResultSet rs = stmt.executeQuery();
//最後獲得的結果
String resultClob;
if(rs.next()){
//導入oracle.sql.CLOB包,或者直接引用這個包oracle.sql.CLOB clob = rs.getClob("str");Reader rd= clob.getCharacterStream();// 得到流BufferedReader br = new BufferedReader(rd);String s = br.readLine();
StringBuffer sb= new StringBuffer();
while (s != null) {
// 循環賦值
sb.append(s);
s = br.readLine();
}
clobResult = sb.toString();
}
Ⅱ 資料庫CLOB型欄位是什麼數據類型
SQL CLOB為內置類型,它將字元大對象(Character Large Object)存儲為資料庫表某一行中的一個列值。
默認情況下,驅動程序使用SQL locator(CLOB)實現Clob對象,這意味著CLOB對象包含一個指向SQL CLOB數據的邏輯指針而不是數據本身。Clob對象在它被創建的事務處理期間有效。
內置類型指任何語言在設計初期定義的類型,如c語言中的int,double, char,它也是在一種語言中最基本的類型,與編譯器編譯出的代碼具有重大關系。
(2)javaclob存儲擴展閱讀
JAVA裡面對CLOB的操作
在絕大多數情況下,使用2種方法使用CLOB
1、相對比較小的,可以用String進行直接操作,把CLOB看成字元串類型即可。
2、如果比較大,可以用getAsciiStream或者getUnicodeStream以及對應的setAsciiStream和 setUnicodeStream即可。
在一些資料庫系統里,也使用Text作為CLOB的別名,比如SQL Server。
Ⅲ oracle 中存儲大量文字信息用什麼欄位,java後台怎麼實現,請舉例。謝謝。
在oracle中存儲大量的文字應該是用CLOB欄位來存儲。這種類型在用java將數據存進資料庫中時比較簡單,直接將String類型的文本寫入就可以了。但是在從資料庫中讀取CLOB類型的數據到java中時比較麻煩,因為你是拿不到數據的,只能拿到這個欄位的一個隱式指針,然後還要通過輸入流來拿到。