这是源码:
StringBuffer query = new StringBuffer();
query.append(" delete from tc_yw_jobs_integrated t1 where 1=1 "); if(id!=null && id.trim().length()>0 )
query.append(" and t1.JOB_ID in(?)");
Object[] obj = {id};
return ManagerFactory.getInstance().getCommonDaoIMP().exeUpdate(query.toString(),obj);
在实际执行后打印出来的删除语句是这样的:delete from tc_yw_jobs_integrated t1 where 1=1 and t1.JOB_ID in('71,72');其中id是int类型,在传参数的工程中用的是?方式,这样就多出了删除语句参数的括号内多了两个单引号,导致无法正确执行sql语句,请问怎样处理才能把单引号去掉???
StringBuffer query = new StringBuffer();
query.append(" delete from tc_yw_jobs_integrated t1 where 1=1 "); if(id!=null && id.trim().length()>0 )
query.append(" and t1.JOB_ID in(?)");
Object[] obj = {id};
return ManagerFactory.getInstance().getCommonDaoIMP().exeUpdate(query.toString(),obj);
在实际执行后打印出来的删除语句是这样的:delete from tc_yw_jobs_integrated t1 where 1=1 and t1.JOB_ID in('71,72');其中id是int类型,在传参数的工程中用的是?方式,这样就多出了删除语句参数的括号内多了两个单引号,导致无法正确执行sql语句,请问怎样处理才能把单引号去掉???
解决方案 »
- hibernate查询
- 类中的 一个公共方法,加上static修饰和不加对性能有什么影响没有?
- hibernate中的sessionfactory是不是最好不要创建多个呢
- 数据库中如何保存html格式
- 我获取了别人的IP,想在本地后台显示这IP所有在地区,如果查询IP所在地区
- 怎样用jdk编译servlet代码?
- Java里用在网页上可替代ActiveX的东西除了Java Applet还有别的吗?
- pentaho 生成的报表能否更改样式.
- 怎么把SQL SERVER 2000里面DateTime类型里面的年,月,日分别取出来??
- 请教一下下面的代码哪里出错?
- 请问这个是什么意思啊
- ymPrompt问题
id传过来后本身是不带单引号的,单引号引起的原因是:
query.append(" and t1.JOB_ID in(?)");
in()中才有的单引号吧!
看看里面怎么操作的,不能改吗?
String idStr = "";
for(int i = 0; i < obj.length; i++) {
idStr += obj[i].toString();
}return ManagerFactory.getInstance().getCommonDaoIMP().exeUpdate(query.toString(),idStr);
既然是int类型的主键
这样貌似不对
应该in(71,72);
你可以不用预处理的方式塞值,直接拼。
query.append(" and t1.JOB_ID in(";for(int i = 0; i < obj.length; i++){
if(i > 0)
query.append(",");
query.append(Integer.parseInt(obj[i].toString));
}
query.append(")");