【问题标题】:Java updating Image to Mysql : result Null(insert, select image works fine)Java将图像更新为Mysql:结果为空(插入,选择图像工作正常)
【发布时间】:2020-08-30 22:55:59
【问题描述】:

我正在尝试通过 swing GUI 应用程序将图像上传到 mysql。

我遇到的问题是更新图像(blob)。 插入和选择工作正常,与其他 int 相同的更新查询,字符串字段也工作正常。

try {
                  File sel = new File(path);
                  String a = sel.toURI().toString();
                  InputStream FIS = new FileInputStream(sel);

                  String insert_sql = "INSERT INTO cal (user_id, time, image) "
                        + "VALUES(?,?,?)"
                        + "ON DUPLICATE KEY UPDATE image = ?;"; // 만약 key가 있다면 update.
                  PreparedStatement preparedStmt = conn.prepareStatement(insert_sql);
                  preparedStmt.setInt(1, user_id);
                  preparedStmt.setString(2, date);
                  preparedStmt.setBlob(3, FIS);
                  preparedStmt.setBlob(4, FIS);
                  preparedStmt.execute();
               } catch (IOException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
               } catch (SQLException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
               }
}

如果没有相同的密钥,那么插入图像就可以了。 但是,如果存在具有相同 ID 的行,无论“图像”列是否为空,则它会给出空输出。 此外,正如我在顶部提到的,此查询适用于其他字符串、整数字段。

提前感谢您的帮助。

【问题讨论】:

    标签: java mysql swing blob


    【解决方案1】:

    答案是使用mysqls“在重复密钥更新”

    insert into mytable (x,y,z) value (a,b,c) on duplicate key update;
    

    【讨论】:

    • 哎呀,我想通了。我使用了那个查询,但它没有用。问题是我两次使用相同的输入流,后一个变成空流
    猜你喜欢
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多