public static Boolean userImage(String userIdString, InputStream stream) {
PreparedStatement statement = null;
String updateTableSQL = "UPDATE `users` SET `image` = ? WHERE `id` = ? ;";
try {
Integer userId = Integer.parseInt(userIdString);
statement = DatabaseManager.getConnection().prepareStatement(updateTableSQL);
statement.setBinaryStream(1, stream);
statement.setInt(2, userId);
Log.write("USER IMAGE UPDATED> " + statement);
statement.executeUpdate(updateTableSQL);
return true;
} catch (Exception e) {
Log.write("USER IMAGE UPDATED> " + e.getMessage());
return false;
} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
日志:
09:55:59:0496:用户图像更新> com.mysql.jdbc.JDBC42PreparedStatement@1c902d70:更新
users
SETimage
= ** STREAM DATA **id
= 29;09:55:59:0511:用户图像更新>您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以获得正确的语法 在'附近使用?第1行的
id
= 29'
答案 0 :(得分:1)
您使用的是executeUpdate
因为您已经创建了带参数的语句
将statement.executeUpdate(updateTableSQL);
更改为statement.executeUpdate();