gpt4 book ai didi

java - 通过PreparedStatement更改受更新影响的列

转载 作者:行者123 更新时间:2023-11-29 15:44:25 26 4
gpt4 key购买 nike

我这里有这段代码:

private void updateGame(String column, String player, String block, String state) {
try {
Connection conn = db.openConnection();
PreparedStatement ps = conn.prepareStatement("UPDATE games SET ? = ? WHERE game_id = ?");
ps.setString(1, column);
ps.setString(2, block);
ps.setInt(3, getGameId(state, player));
ps.executeUpdate();
conn.close();
} catch (Exception ex) {
}
}

当我传入column参数时,我希望它更新我在调用该函数时编写的数据库中的特定列。我有多个相似的列,这就是我使用此方法的原因。但是,当我这样做时,它只会给出一个错误。我尝试直接设置列,不带问号(?),并且成功了。不是重复的,因为我得到的回复是与“重复”中的解决方案不同的解决方案

有什么办法可以做到这一点吗?

最佳答案

遗憾的是,您只能将列值绑定(bind)到 PreparedStatement,而不能将列名称绑定(bind)。

您可以使用格式化程序来执行替换:

MessageFormat.format("UPDATE games SET {0} = ? WHERE game_id = ?", column)

关于java - 通过PreparedStatement更改受更新影响的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57227671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com