PreparedStatement setString失效求解
场景:实现条记录的更新,传入拼接过后的条件(No)
String sql = "UPDATE FB_J_FAULT_SHEET f SET f.DISTRIBUTION_STATUS = 1,f.DUTY_PERSON = ?"+
" WHERE f.SHEET_STREAM_NO in (?)";
Set<String> idSet = update_codition.keySet();
for(String key:idSet){
ps = conn.prepareStatement(sql);
ps.setString(1, key);
System.out.println(update_codition.get(key));
System.out.println(update_codition.get(key).substring(6,update_codition.get(key).length()-1));
ps.setString(2, update_codition.get(key).substring(6,update_codition.get(key).length()-1));//删除前6位 null,' 后一位'
System.out.println(ps.executeUpdate());
}
结果
null,'CTG1803140033111193'
CTG1803140033111193
1
null,'CTG17050800041171802','CTG17042600041171801'
CTG17050800041171802','CTG17042600041171801
0
操作依据,setString会自动给设置参数添加单引号。
String sql = "UPDATE FB_J_FAULT_SHEET f SET f.DISTRIBUTION_STATUS = 1,f.DUTY_PERSON = ?"+
" WHERE f.SHEET_STREAM_NO in (?)";
Set<String> idSet = update_codition.keySet();
for(String key:idSet){
ps = conn.prepareStatement(sql);
ps.setString(1, key);
System.out.println(update_codition.get(key));
System.out.println(update_codition.get(key).substring(6,update_codition.get(key).length()-1));
ps.setString(2, update_codition.get(key).substring(6,update_codition.get(key).length()-1));//删除前6位 null,' 后一位'
System.out.println(ps.executeUpdate());
}
结果
null,'CTG1803140033111193'
CTG1803140033111193
1
null,'CTG17050800041171802','CTG17042600041171801'
CTG17050800041171802','CTG17042600041171801
0
操作依据,setString会自动给设置参数添加单引号。
...全文
相关推荐
使用PreparedStatement的setString方法会自动在varchar后面补空格
此实例意在解决预处理命令PreparedStatement的setString()方法,在sql2008数据库中写入数据时,会自动补足空格的问题,同时此实例也解决了当存在自动补足空格的问题时,使用nv
java中PreparedStatement和Statement详细讲解
下面是几个示例代码,演示了 PreparedStatement 对象如何防止 SQL 注入攻击:```java// 例子 1pstmt.setString(1, "韦小宝");pstmt.setString
PreparedStatement详细用法
;PreparedStatement ps = connection.prepareStatement(sql);ps.setInt(1, id);ps.setString(2, name);ResultSet
PreparedStatement 详细用法
(2, "name" + id); pstmtInsert.setString(3, "city" + id); pstmtInsert.setDate(4, new java.sql.Date(78,
java中PreparedStatement和Statement的区别
;perstmt.setString(1,var1);perstmt.setString(2,var2);perstmt.setString(3,var3);perstmt.setString(4,var4


