如何在JDBC中使用不同列的可重用代码编写单个更新查询(更新1列)?



我要更新:
1.Name
2.Salary
3。
JDBC。所以,我写了一整段大代码来更新jdbc中的
PreparedStatement ps = con.prepareStatement("update tablename set name=? where id=?")的用户值;
然后像往常一样使用ps.setString()和ps.setInt();后面跟着ps.executeQuery()

这很好。但是现在我必须重写相同的代码行来更新工资和数字。我的问题是,有没有办法让我用同样的代码?
我试了:

String name="name";
PreparedStatement ps = con.prepareStatement("update tablename set ?=? where id=?");
ps.setString(name);

和类似的变量。
但它不起作用。在我的项目中,我有很多这样的字段,如果我为每个单独的字段编写不同的更新代码,它将增加我的java文件中的行很多。我想要优化。
对此有什么想法吗?谢谢。

不可以绑定列名

但这并不意味着您需要为每一列额外编写代码。

可以动态创建SQL字符串

"update tablename set " + getColumnname() + " =? where id=?"

,您必须为更新列的每个数据类型实现不同的代码路径,例如setString,setLong,…

如果您将列名作为外部参数,您应该检查它是否真的是列名,以防止SQL注入