谁有SSH批量删除的例子 想百度个居然搜索不到,请各位给予我宝贵的一点时间,小弟万分感谢。给链接,给源码,贴源码都行,我邮箱:[email protected] ,注:给的话请附上jsp页面源码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你提供下思路,你再试试,这样进步很快的。 在jsp页面用checkbox, name="ids" value="每条记录的标识符,也就是主键" 点击删除按钮后,checkbox所在的form提交到action 在action里面定义字符串数组 private String[] ids ,加上get和set方法 。 ids里面的值就是要批量删除的记录的id,遍历出来,对id进行单个删除操作。 这里的id是字符串。如果用的主键是自增长的数字,可以把字符串转整形 int n = java.lang.Integer.parseInt("22"); 自己试下吧,如果还不行给我id上的QQ发邮件,我会回复的。 批量删除也就是用For循环去一个一个的删除. google 搜索getHibernate批量更新public void batchUpdateByQuery(final String queryString, final Object[] parameters) { try { getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) { Query query = session.createQuery(queryString); if (parameters != null) { for (int i = 0; i < parameters.length; i++) { query.setParameter(i, parameters[i]); } } query.executeUpdate(); return null; } }); } catch (Exception e) { log.error("AbstractCommonDao基类里头批量修改出错", e); } } 也可以用AJAX方式、统一用表主键的值、做checkbox的id。name一样然后在通过js取得所有选中了的Id的值、把它们作为参数往后台传!/* * 删除信息 */function deleteInfo(path){ var chkName = document.getElementsByName('cheAll'); var trueAfalse = false ; var chec = new Array(); jQuery("input:checkbox[name=cheAll]:checked").each(function(i){ if(jQuery(this).attr("checked") == true){ chec[i] = jQuery(this).attr("id") ; trueAfalse = true ; } }); if(!trueAfalse){ return alert('请选择删除项!'); } if(confirm("您确定要删除吗?")){ var urlx = path+"/platform/questionAction!delTbquestion.action"; $.ajax({ type: "POST", //用POST方式传输 url:urlx, //目标地址 data: "cheAll="+chec, async:false, //作用是防止在ajax成功调用之前就调用$("#Pagination").pagination,这个时候数据个数还没有初始化 success:function(data) { alert(data); window.location.reload(); } }); } }在后台获取过后呢、需要在用split分割一下!!!public String delTbquestion(){ PrintWriter out = null; try{ request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); out = response.getWriter(); //问题编号 String Id = request.getParameter("cheAll"); if(Id == null || Id.equals("") || Id.length() <= 0){ out.print("请选择删除项!!!"); return null; } //分割问题编号 String Ids[] = Id.split(","); boolean bool = question.deleteTbquestionById(Ids); if(bool){ out.print("删除成功!!!"); }else{ out.print("删除失败!!!"); } }catch(Exception ex){ out.print("操作失败!!!"); ex.printStackTrace(); }finally{ if(out != null) out.close(); } return null; } 记住、循环一定要在Service层循环!!!因为Spring的事务都是配置那里!dao层方法抛出异常、Service层又往外抛、在Action里面在try{}Catch如果Service层的方法执行完毕、那么就提交事务、如果方法执行过程中出错了!那么就事务回滚!!!public boolean deleteTbquestionById(String[] Id) throws Exception { boolean bool = false; for (int i = 0; i < Id.length; i++) { if(Id != null && !"".equals(Id)) bool = daoHql.del(queryTbquestionById(Id[i])); } return bool; } if(Id != null && !"".equals(Id))这个判定有问题!!!应该是id[i]~~~!!!My嘎嘎!!! 还循环去删呢,那样效率低啊,直接用hql删除:delete from Table where id in(?) Hibernate官方文档上面我看了下只有batch-insert和batch-update;个人觉得4楼的想法还是蛮不错的。 jsp页面checkBox每个ID的值,进行多选,在form里面定义一个int[]这样的数组接收,然后在action里面取得form里int的数组,然后循环对应的ID,在根据循环的ID值进行删除,这个是struts1的 谢谢,大家的回答对我很有帮助,最后一个小疑问:除了“遍历删除”和“delete from Table where id in(?)”是不是还有个Spring的deleteAll()? 麻烦各位,小弟结贴前还有个疑问,也是最后的疑问,JS怎样获得用户全选的checkbox的value呢?比如下面的代码,怎么传递一个集合到action里去。 <script type="text/javascript"> /*全选JS*/ var isChecked=true; function selectAll(){ var cbxs=document.getElementsByName("slt"); for(var i=0;i<cbxs.length;i++){ if(cbxs[i].type=="checkbox"){ cbxs[i].checked=isChecked; } } isChecked=!isChecked; } </script> </head> <body> <s:form action="indexAction!init"> <table border=0> <tr> <td></td> <td>用户名:</td> <td><s:textfield name="indexForm.userDto.username"/></td> </tr> <tr> <td></td> <td>性别:</td> <td><s:textfield name="indexForm.userDto.usersex"/></td> </tr> <tr> <td></td> <td></td> <td><s:submit value="查询"/></td> </tr> </table> </s:form> <s:form action=""> <table border=0> <tr> <th></th> <th>用户名</th> <th>性别</th> </tr> <s:iterator value="indexForm.userList"> <tr> <td><input type="checkbox" name="slt" value="userid"/></td> <td width="100px"><s:property value="username"/></td> <td><s:property value="usersex"/></td> </tr> </s:iterator> <tr> <td width="80px"><input type="checkbox" name="slt" onClick="selectAll()"/>全选</td> <td></td> <td><a href="" onclick="">删除</a></td> </tr> </table> </s:form> </body></html> 格式化一下上面的代码:全选/反选的js代码:<script type="text/javascript"> /*全选JS*/ var isChecked=true; function selectAll(){ var cbxs=document.getElementsByName("slt"); for(var i=0;i<cbxs.length;i++){ if(cbxs[i].type=="checkbox"){ cbxs[i].checked=isChecked; } } isChecked=!isChecked; } </script>需要提交的form表单:<s:form action=""> <table border=0> <tr> <th>用户名</th> <th>性别</th> </tr> <s:iterator value="indexForm.userList"> <tr> <td><input type="checkbox" name="slt" value="userid"/></td><!--这里是每一项纪录的复选框--> <td><s:property value="username"/></td><!--用户名称--> <td><s:property value="usersex"/></td><!--用户性别--> </tr> </s:iterator> <tr> <td><input type="checkbox" name="slt" onclick="selectAll()"/>全选</td> <td><a href="">删除</a></td> </tr> </table> </s:form>怎样获得用户全选的checkbox的值然后提交到action去?是不是要在form里定义什么,请大家指点一下非常感谢。 JAVA WEB 开发框架 ireport 大侠帮看下这个JS,一个时间插件! 求救求救~~~~~~~~~ 初学jsp,请各位帮下. 大家一般怎么控制权限呢 55555555555,偶弄不了这个破RESIN了.... 继承接口的问题~帮帮帮 java.sql.*里gettime()和getDate()的区别 用jsp调用javabean,对所调用的bean在路径上用作什么样的设定呢? 有macbook下面那种网页效果的代码吗? 求助!如何在HTML页面中加入视频!!
在jsp页面用checkbox, name="ids" value="每条记录的标识符,也就是主键"
点击删除按钮后,checkbox所在的form提交到action
在action里面定义字符串数组 private String[] ids ,加上get和set方法 。
ids里面的值就是要批量删除的记录的id,遍历出来,对id进行单个删除操作。
这里的id是字符串。如果用的主键是自增长的数字,可以把字符串转整形
int n = java.lang.Integer.parseInt("22");
自己试下吧,如果还不行给我id上的QQ发邮件,我会回复的。
final Object[] parameters) {
try {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery(queryString);
if (parameters != null) {
for (int i = 0; i < parameters.length; i++) {
query.setParameter(i, parameters[i]);
}
}
query.executeUpdate();
return null;
}
}); } catch (Exception e) {
log.error("AbstractCommonDao基类里头批量修改出错", e);
}
}
也可以用AJAX方式、
统一用表主键的值、做checkbox的id。name一样
然后在通过js取得所有选中了的Id的值、把它们作为参数往后台传!/*
* 删除信息
*/
function deleteInfo(path){
var chkName = document.getElementsByName('cheAll');
var trueAfalse = false ;
var chec = new Array();
jQuery("input:checkbox[name=cheAll]:checked").each(function(i){
if(jQuery(this).attr("checked") == true){
chec[i] = jQuery(this).attr("id") ;
trueAfalse = true ;
}
});
if(!trueAfalse){
return alert('请选择删除项!');
}
if(confirm("您确定要删除吗?")){
var urlx = path+"/platform/questionAction!delTbquestion.action";
$.ajax({
type: "POST", //用POST方式传输
url:urlx, //目标地址
data: "cheAll="+chec,
async:false, //作用是防止在ajax成功调用之前就调用$("#Pagination").pagination,这个时候数据个数还没有初始化
success:function(data) {
alert(data);
window.location.reload();
}
});
}
}在后台获取过后呢、需要在用split分割一下!!!public String delTbquestion(){
PrintWriter out = null;
try{
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
out = response.getWriter();
//问题编号
String Id = request.getParameter("cheAll");
if(Id == null || Id.equals("") || Id.length() <= 0){
out.print("请选择删除项!!!");
return null;
}
//分割问题编号
String Ids[] = Id.split(",");
boolean bool = question.deleteTbquestionById(Ids);
if(bool){
out.print("删除成功!!!");
}else{
out.print("删除失败!!!");
}
}catch(Exception ex){
out.print("操作失败!!!");
ex.printStackTrace();
}finally{
if(out != null) out.close();
}
return null;
} 记住、循环一定要在Service层循环!!!因为Spring的事务都是配置那里!
dao层方法抛出异常、Service层又往外抛、在Action里面在try{}Catch
如果Service层的方法执行完毕、那么就提交事务、如果方法执行过程中出错了!
那么就事务回滚!!!public boolean deleteTbquestionById(String[] Id) throws Exception {
boolean bool = false;
for (int i = 0; i < Id.length; i++) {
if(Id != null && !"".equals(Id))
bool = daoHql.del(queryTbquestionById(Id[i]));
}
return bool;
}
应该是id[i]~~~!!!My嘎嘎!!!
个人觉得4楼的想法还是蛮不错的。
<script type="text/javascript">
/*全选JS*/
var isChecked=true;
function selectAll(){
var cbxs=document.getElementsByName("slt");
for(var i=0;i<cbxs.length;i++){
if(cbxs[i].type=="checkbox"){
cbxs[i].checked=isChecked;
}
}
isChecked=!isChecked;
}
</script>
</head>
<body>
<s:form action="indexAction!init">
<table border=0>
<tr>
<td></td>
<td>用户名:</td>
<td><s:textfield name="indexForm.userDto.username"/></td>
</tr>
<tr>
<td></td>
<td>性别:</td>
<td><s:textfield name="indexForm.userDto.usersex"/></td>
</tr>
<tr>
<td></td>
<td></td>
<td><s:submit value="查询"/></td>
</tr>
</table>
</s:form>
<s:form action="">
<table border=0>
<tr>
<th></th>
<th>用户名</th>
<th>性别</th>
</tr>
<s:iterator value="indexForm.userList">
<tr>
<td><input type="checkbox" name="slt" value="userid"/></td>
<td width="100px"><s:property value="username"/></td>
<td><s:property value="usersex"/></td>
</tr>
</s:iterator>
<tr>
<td width="80px"><input type="checkbox" name="slt" onClick="selectAll()"/>全选</td>
<td></td>
<td><a href="" onclick="">删除</a></td>
</tr>
</table>
</s:form>
</body>
</html>
全选/反选的js代码:
<script type="text/javascript">
/*全选JS*/
var isChecked=true;
function selectAll(){
var cbxs=document.getElementsByName("slt");
for(var i=0;i<cbxs.length;i++){
if(cbxs[i].type=="checkbox"){
cbxs[i].checked=isChecked;
}
}
isChecked=!isChecked;
}
</script>
需要提交的form表单:
<s:form action="">
<table border=0>
<tr>
<th>用户名</th>
<th>性别</th>
</tr>
<s:iterator value="indexForm.userList">
<tr>
<td><input type="checkbox" name="slt" value="userid"/></td><!--这里是每一项纪录的复选框-->
<td><s:property value="username"/></td><!--用户名称-->
<td><s:property value="usersex"/></td><!--用户性别-->
</tr>
</s:iterator>
<tr>
<td><input type="checkbox" name="slt" onclick="selectAll()"/>全选</td>
<td><a href="">删除</a></td>
</tr>
</table>
</s:form>
怎样获得用户全选的checkbox的值然后提交到action去?是不是要在form里定义什么,请大家指点一下非常感谢。