JDBC 操作Blob資料

2021-10-25 06:22:12 字數 1295 閱讀 7973

除了解決statement的拼串、sql問題之外,preparedstatement還有什麼好處?

1、preparedstatement操作blob的資料,而statement做不到。

2、preparedstatement可以實現更高效的批量操作。

— 插入blob型別的資料必須使用preparedstatement,因為blob型別的資料無法使用字串拼接寫的。

— mysql的四種blob型別(除了在儲存的最大資訊量上不同外,它們是等同的)

— 在實際使用中根據需要存入的資料大小定義不同的blob型別。

— 注意:如果儲存的檔案過大,資料庫的效能會下降。

max_allowed_packet=16m

同時注意:修改了my.ini檔案之後,需要重新啟動mysql服務。

@test

public void testinsert() throws exception

connection conn = jdbcutils.getconnection();

string sql = "update customers set photo = ? where id = ?";

preparedstatement ps = conn.preparestatement(sql);

// 填充佔位符

// 操作blob型別的變數

fileinputstream fis = new fileinputstream("coffee.png");

ps.setblob(1, fis);

ps.setint(2, 25);

ps.execute();

fis.close();

jdbcutils.closeresource(conn, ps);

//查詢資料庫表customers中blob型別的字段

@test

public void testquery()

}}catch(exception e)finallycatch(ioexception e)

trycatch(ioexception e)

jdbcutils.closeresource(conn,ps,rs);}}

《十》JDBC 處理Blob型別資料

讀取blob資料 使用getblob方法讀取到blob物件 呼叫blob的getbinarystream 方法得到輸入流,在使用io操作 test public void readblob os.close in.close system.out.println id name email catc...

用JDBC操縱BLOB和CLOB資料

在訪問oracle 資料庫,對oracle 的blob 和clob 進行操作的時候,當通過oracle jdbc driver 來呼叫的時,如下所例 driver mydriver driver class.forname oracle.jdbc.driver.oracledriver newins...

jdbc操作Blob和Clob欄位與字串的轉換

oracle的資料庫裡對於大字段儲存,通常有3種型別,一種就是所謂的blob型別,另一種就是clob型別,第三種是nclob型別,關於這三者者的使用範圍,應該說沒有嚴格意義上的要求,但大部分場景下我用經常使用blob儲存二進位制資料型別的東西,例如,單子流等,而使用clob來儲存大型文字資料,例如一...