JDBC處理大文字資料或二進位制資料和批量處理

2021-06-01 22:20:57 字數 1697 閱讀 3063

馬上要講hibernate了,誒,這個學期太累了~~~

使用jdbc處理大文字資料

在實際開發中,程式需要把大文字或二進位制資料儲存到資料庫。

基本概念:大資料也稱之為lob(largeobjects),lob又分為:clob和blob

clob用於儲存大文字。text

blob用於儲存二進位制資料,例如影象、聲音、二進位製文等。

對mysql而言只有blob,而沒有clob,mysql儲存大文字採用的是text,text和blob分別又分為:

tinytext、text、mediumtext和longtext

tinyblob、blob、mediumblob和longblob

使用jdbc進行批處理

業務場景:當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率。

實現批處理有兩種方式,第一種方式:

statement.addbatch(sql)  list

執行批處理sql語句

executebatch()方法:執行批處理命令

clearbatch()方法:清除批處理命令

connection conn =null;

statement st =null;

resultset rs =null;

tryfinally{

jdbcutil.free(conn,st, rs);

採用statement.addbatch(sql)方式實現批處理:

優點:可以向資料庫傳送多條不同的sql語句。

缺點:sql語句沒有預編譯。

當向資料庫傳送多條語句相同,但僅引數不同的sql語句時,需重複寫上很多條sql語句。

使用批量處理的第二種方式

conn = jdbcutil.getconnection();

string sql = "insert intouser(name,password,email,birthday) values(?,?,?,?)";

st = conn.preparestatement(sql);

for(inti=0;i<50000;i++){

st.setstring(1,"aaa" + i);

st.setstring(2,"123" + i);

st.setstring(3,"aaa" + i + "@sina.com");

st.setdate(4,newdate(1980, 10,10));

st.addbatch();

if(i%1000==0){

st.executebatch();

st.clearbatch();

st.executebatch();

採用preparedstatement.addbatch()實現批處理

優點:傳送的是預編譯後的sql語句,執行效率高。

缺點:只能應用在sql語句相同,但引數不同的批處理中。因此此種形式的批處理經常用於在同乙個表中批量插入資料,或批量更新表的資料。

使用JDBC處理文字資料或二進位制資料

lob large object 分為clob和blob,clob表示文字資料,blob用於表示二進位制資料.mysql儲存文字資料使用的是text而不是clob,mysql中的text和blob分別分為 tinytext text mediumtext和longtext,占用的記憶體空間分別為25...

JDBC處理大資料 二進位制資料和批處理

例如,文字資料 儲存 preparestatement.setcharacterstream index,fis,length nt index 是預編譯sql語句中大文字資料的引數索引位置 fis 大文字資料的輸入流 length 大文字資料的長度 獲取 方法一 reader resultset....

jdbc操作大段文字和二進位制資料型別

使用jdbc操作大段文字和二進位制資料型別 1 clob型別 用以儲存大容量的文字 mysql中對應的字段型別是mediumtext text 和longtetxt 向資料庫中插入大段的文字 public static void insert catch sqlexception e catch f...