簡體   English   中英

用spring jdbctemplate插入blob

[英]insert blob with spring jdbctemplate

我正在嘗試通過以下代碼使用jdbctemplate在表中插入Blob

LobHandler handler = new DefaultLobHandler();
int dbresponse = jdbcTemplate.update(DBConstants.INSERT_INVOICE, new Object[]{invoiceBean.getVendorid(),
        new SqlLobValue(invoiceBean.getInvoiceImage(), invoiceBean.getInvoiveImageLength(), handler), invoiceBean.getInvoiceDate()}, 
        Types.INTEGER,Types.BLOB, Types.VARCHAR);

但出現以下錯誤

    Caused by: java.sql.SQLException: Invalid argument value: java.io.NotSerializableException

.......

    Caused by: java.io.NotSerializableException: org.springframework.jdbc.core.support.SqlLobValue

我已經將invoiceBean類設置為Serializable,但是得到了相同的錯誤。

注意:小尺寸的圖像已成功插入數據庫,但是大尺寸圖像通常會大於1 MB,因此會出現問題

好心的建議 !!!

我認為最后一個參數應該是一個int數組:

LobHandler handler = new DefaultLobHandler();
int dbresponse = jdbcTemplate.update(
                       DBConstants.INSERT_INVOICE, 
                       new Object[]{
                               invoiceBean.getVendorid(),
                               new SqlLobValue(invoiceBean.getInvoiceImage(), invoiceBean.getInvoiveImageLength(), handler), 
                               invoiceBean.getInvoiceDate()}, 
                       new int[] {Types.INTEGER, Types.BLOB, Types.VARCHAR});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM