我需要使用 JAVA Handle 和 create 语句更新我的列,但根据我的研究,如果我想要更新所有(或大部分)列,我需要使用批处理?
这是我迄今为止编写的代码:
private int deletePlayer(Handle handle, String username, String table) {
logger.debug("Deleting from table " + table);
String sqlCommand;
sqlCommand = String.format("UPDATE %s SET rank = 1 "
+ "SET level = 1 "
+ "SET exp = 0 "
+ "SET prof = '' "
+ "SET guild = '' "
+ "SET varname = '' "
+ "WHERE name = :username", table);
handle.createStatement(sqlCommand)
.bind("username", username)
.execute();
return 1;
}
我将其分解并尝试查明问题,发现 MySQL 命令:
sqlCommand = String.format("UPDATE %s SET varname = '' WHERE name = :username", table);
类似的东西不起作用。这很可能是由于字符串/字符连接所致。
另外,我应该使用批处理吗?
堆栈跟踪:[Ljava.lang.StackTraceElement;@15b2043
请,如果您要删除这篇文章,请告诉我原因,我将非常乐意根据您的喜好进行修改或澄清,以便它遵守论坛行为/服务条款/等等.
最佳答案
我认为您错过了用于更新数据库值的关键字集之间的逗号。
sqlCommand = String.format("UPDATE %s SET rank = 1 "
+ "SET level = 1, "
+ "SET exp = 0, "
+ "SET prof = '', "
+ "SET guild = '', "
+ "SET varname = '' "
+ "WHERE name = :username", table);
关于java - 如何使用JAVA句柄createStatement INNODB更新sql varchar列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24985836/