小编Pet*_*ter的帖子

Java异常错误 - Sqlite preparedStatement.setBlob

我将数据放入数据库,它可以是MYSQL数据库(服务器)或SQLITE数据库(路上的平板电脑).Java应用程序每天与服务器同步,上传新数据并下载任何新数据.那部分运作良好.但是,要求它也能够处理图像.

我们选择在数据库中使用blob,而不是实现一个依赖于将图像复制到每端文件系统的全新系统.对那些不这样做的回复并不感兴趣;)我真正需要帮助的是当我尝试编写blob时,我在调度中得到一个异常.

我们正在从数据库构造输入表单,因为整个应用程序正在用于不同的目的,这取决于数据库.输入表单允许您将图像附加到记录,我们将其存储为base64字符串.然后将其解码为byte [].

我的测试程序在字符串和字节数组之间来回转换(最终是一个Image)没问题.所以我相信问题是在准备好的声明中设置Blob,但我可能是错的.

单击"保存"按钮后发生"异常".

Exception occurred during event dispatching:
java.lang.AbstractMethodError: org.sqlite.PrepStmt.setBlob(ILjava/io/InputStream;J)V
    at tabletapp.database.DB.prepareStatement(DB.java:641)
    at tabletapp.database.DB.save(DB.java:743)
    at tabletapp.FormPanel.saveData(FormPanel.java:546)
Run Code Online (Sandbox Code Playgroud)

违规代码块

public void prepareStatement(String table, String sql, LinkedHashMap<String, String> data) {
    try {
        String typeID = "";
        PreparedStatement ps = connection.prepareStatement(sql);
        log.debug("Preparing SQL: " + sql.replace("\n", ""));
        int parameterIndex = 1;

        //for (String columnName : getColumnNames(table)) {
        for (String columnName : data.keySet()) {
            typeID = getColumnType(table, columnName);

            if (data.containsKey(columnName)) {
                String value = data.get(columnName);
                if (value == null || "".equals(value)) { …
Run Code Online (Sandbox Code Playgroud)

java mysql database sqlite exception

7
推荐指数
2
解决办法
3431
查看次数

标签 统计

database ×1

exception ×1

java ×1

mysql ×1

sqlite ×1