String ids = "1,2,3";
StringBuffer sql = new StringBuffer("delete from t_client where id in (:clientids)");
SQLQuery sqlQuery = getSession().createSQLQuery(sql.toString());
sqlQuery.setParameter("clientids", ids);
int result = sqlQuery.executeUpdate();
现在的问题是我如果sql中直接delete from t_client where id in ("+ids+")这样写就能删除3条。
但是我用setParameter设置参数只能删除1条。求原因。
解决方案 »
- 关于String与StringBuffer的问题~~~急!!
- tomcat5.5双机热备
- 救命啊。快来看看。
- Hibernate 问题 有会的没有啊。。真没有懂的么
- XPP3的使用问题
- java 下载二进制数据转化为文件
- 问一下一个form的输入属性是怎么在action里面传递的?
- ejbRemove方法什么时候调用?对于Stateful Session Bean和Stateless Session Bean来说,容器的处理有不同吗?
- 高分求! IIS的FTP服务器,如果付权限可写,则匿名用户也可写;如果不可写,则操作员(Administrator)也不可写! 如何实现匿名用户只读
- weblogic部署时application和web application的区别?
- 有关EJB的问题,崩溃中……
- 请求一个固定时间向数据库插入随机数的实例
setParameter("clientids", ids);
把sql变成这样了。
delete from t_client where id in ('1,2,3');
然后你有传了个参数1,2,3,肯定数据库理解是一个参数。
String[] ids = new String[]{1,2,3};
然后使用sqlQuery.setParameterList("ids", ids); 就可以了必须用数组