我的问题是关于使用MySQL在eclipse中显示的更新查询,该查询是从以下代码中收到的
这是我的数据库:

我正尝试在eclipse上执行下一次更新查询,但遇到了问题
public static void update_Payment(String month,int number) {
String sqlupdate = "UPDATE tenant SET month=? WHERE appartmentnum =? ";
try {
PreparedStatement pst = connect.prepareStatement(sqlupdate);
pst.setInt(1, 4);
pst.setInt(2, 1);
pst.executeUpdate();
} catch (SQLException var2) {
var2.printStackTrace();
}
}我知道我的数据库中没有列名称month,我只想从用户那里接收月份的名称,例如
当我将列名从month更改为april或jan时,此方法工作正常
thx请求帮助
发布于 2018-01-18 05:22:15
由于您要将此SQL语句构建为字符串,因此请尝试以下操作:
public static void update_Payment(String month,int number) {
String sqlupdate = "UPDATE tenant SET " + month + "=? WHERE appartmentnum =? ";
try {
PreparedStatement pst = connect.prepareStatement(sqlupdate);
pst.setInt(1, 4);
pst.setInt(2, 1);
pst.executeUpdate();
} catch (SQLException var2) {
var2.printStackTrace();
}
}你仍然有一个问题:
您需要一种方法来为?传递适当的值。没有默认的方法将月份转换为月份数字。你可以在代码或db中编写一个解决方案,例如Get month number from month name
当然,只需添加另一个参数并传入表示月份的适当整数,就像您对apt#所做的那样
https://stackoverflow.com/questions/48310064
复制相似问题