我正试图通过swing GUI应用程序将图片上传到mysql。
我遇到的麻烦是更新图像(blob).Insert和选择只是工作正常,同样的更新查询与其他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();
}
}
如果没有相同的Key,那么插入图像工作就很好.但是,如果有一个相同的ID行,无论 "图像 "列是空的或不是空的,然后它给出了空的输出.此外,正如我在顶部提到的,这个查询工作与其他字符串,整数字段。
先谢谢你的帮助。
答案是使用mysqls "对重复键更新"
insert into mytable (x,y,z) value (a,b,c) on duplicate key update;