当JDBC驱动程序未实现PreparedStatement.setBlob()时,如何将BLOB写入数据库

时间:2013-09-28 19:52:38

标签: java sqlite jdbc

使用以下代码将BLOB值写入数据库之后:

    // bb is of type ByteBuffer
    Blob blob = new SerialBlob(bb.array());
    sqlStatement = "UPDATE Words SET Examples=? WHERE Word=\"" + word + "\"";
    // c is of type Connection
    PreparedStatement pstmt = c.prepareStatement(sqlStatement);
    pstmt.setBlob(1, blob);
    pstmt.executeUpdate();
    c.commit();

我收到以下错误:

  
    

java.sql.SQLException:未由SQLite JDBC驱动程序实现

  

无论我从何处下载此驱动程序,我的问题是您是否知道将BLOB值写入SQLite数据库的任何 SAFE 方法。

2 个答案:

答案 0 :(得分:0)

我认为您忘记为Example

设置值
st.setAsciiStream(1, fin, (int) file.length());//if you are storing file in database

答案 1 :(得分:0)

我想我找到了一个有用的方法。最后我使用了以下代码并且它有效!

pstmt.setBytes(1, blob.getBytes(1, bb.capacity()));