java - 使用java代码将图片插入数据库(sqlite)。我应该怎么办?

标签 java sql sqlite jdbc

在 sqlite 数据库中,我设置了一个类型为 blob 的字段。 然后,我写了java代码:

PreparedStatement preStmt = con.prepareStatement("INSERT INTO zz(pic) VALUES(?)");
preStmt.setBinaryStream(1, new FileInputStream(file), file.length());

我有一个异常(exception):

java.lang.AbstractMethodError: org.sqlite.PrepStmt.setBinaryStream(ILjava/io/InputStream;J)V

有什么建议吗?

或者,如果我想在 sqlite 中使用保存二进制数,我应该写什么代码?

最佳答案

我在 xerial.org 的 sqlite jdbc dirver 上取得了很好的成功:http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC

Xerial 的 SQLite JDBC 实现有 PreparedStatement.setBytes(index, byte[])。您应该能够使用以下链接中的代码从 FileInputStream 获取字节数组:http://www.java-tips.org/java-se-tips/java.io/reading-a-file-into-a-byte-array.html

将事物存储为 Blob 时要注意以下问题:http://effbot.org/zone/sqlite-blob.htm

希望对您有所帮助。

-亚历克斯

关于java - 使用java代码将图片插入数据库(sqlite)。我应该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2182467/

相关文章:

java - Java中如何使图像居中?

java - EventSource 与 Map<Class<?扩展事件>,列表<EventListener<? extends Event>> 没有未经检查的调用

java - Oracle SQL Developer 加载 Java 错误

具有 int 值的 Android Sqlite 选择 args[]

javascript - 从两个表中选择/排序数据

java - 如何正确格式化数字字符串

java - 使用 Java 读取名称中带有空格的文件?

sql - 如何从系统日期中减去年份

sql - 从多个表中选择 SUM

iphone - 关于 SQLite3 和更新 iPhone 应用程序的问题