我要更新:
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注入。