Java 将字节数组插入blob列

Java 将字节数组插入blob列,java,sqlite,jdbc,Java,Sqlite,Jdbc,我正在尝试将字节数组插入sqlite数据库中的blob列。我已经尝试了setBinaryStream和setBytes,但我没有通过SQLite JDBC驱动程序异常实现。我正在使用sqlite-jdbc-3.8.7.jar。我应该使用什么jar来完成这项工作?谢谢 这是我的密码: public void addDriverData(String prenume,String nume,String telefon,String email,String permis,String parol

我正在尝试将字节数组插入sqlite数据库中的blob列。我已经尝试了setBinaryStream和setBytes,但我没有通过SQLite JDBC驱动程序异常实现。我正在使用sqlite-jdbc-3.8.7.jar。我应该使用什么jar来完成这项工作?谢谢

这是我的密码:

 public void addDriverData(String prenume,String nume,String telefon,String email,String permis,String parola,byte[] photo) throws SQLException
    { String sql = "INSERT INTO driver(first_name,last_name,phone,email,permit,password,photo)VALUES(?,?,?,?,?,?,?)";
        PreparedStatement stm = c.prepareStatement(sql);
        stm.setString(1,prenume);
        stm.setString(2,nume);
        stm.setString(3,telefon);
        stm.setString(4,email);
        stm.setString(5,permis);
        stm.setString(6, parola);
        //stm.setBinaryStream(7,new ByteArrayInputStream(photo),photo.length);
        stm.setBytes(7, photo);

        System.out.println(sql);
        stm.executeUpdate(sql);
        stm.close();
        c.commit();
    }

使用创建
PreparedStatement
对象后

String sql=“插入…”;
PreparedStatement stm=c.prepareStatement(sql);
对象已经处理了
sql
命令文本。当执行PreparedStatement的时候,我们需要做的就是

stm.executeUpdate();

(方法调用
executeUpdate(sql)
用于
语句
对象,而不是
PreparedStatement
对象。)

setBytes()
在sqlite-jdbc-3.8.7.jar中得到明确支持。当您尝试使用
setBytes()
时,是否确实收到“java.sql.SQLException:未由SQLite JDBC驱动程序实现”消息?是的,这是异常:java.sql.SQLException:未由SQLite JDBC驱动程序在org.SQLite.jdbc3.JDBC3PreparedStatement.unused上实现(JDBC3PreparedStatement.java:466)位于org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:498)位于Server.Database.addDriverData(Database.java:77)位于Server.ServerConnection.register(ServerConnection.java:107)位于Server.ServerConnection.run(ServerConnection.java:63)位于java.lang.Thread.run(Thread.java:724)好的,尝试只使用
stm.executeUpdate()
而不是
stm.executeUpdate(sql)
。看看这是否与参数列表中的
setBytes()
一起工作。它与stm.executeUpdate()一起工作。非常感谢!