我有这个代码部分:
String t = (tname2.getText());
String h = (value2.getText());
PreparedStatement ps ;
if(h.length()>2)
{
ps = con.prepareStatement("DELETE FROM "+t+" where empname = "+ h);
//ps.setString(2,h);
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "Record deleted !", "Confirmation", JOptionPane.INFORMATION_MESSAGE);
}
Run Code Online (Sandbox Code Playgroud)
现在,该线路ps = con.prepareStatement("DELETE FROM "+t+" where empname = "+ h);无效.它的另一种方式是使用"?".如同"Delete * from "+ t +" where empname =?";
然后设置empname的值.我想知道,如果有一种方法可以使用我的empname与查询的连接来做事情吗?有人可以提供一些提示吗?`
将PreparedStatement与参数化查询一起使用并设置值.
这种使用也会阻止SQL注入.
因为将值连接到查询中易受SQL注入攻击.
例如.
ps = con.prepareStatement("DELETE FROM "+t+" where empname = ?");
psmt.setString(1, h);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1111 次 |
| 最近记录: |