Layui+SSM批量删除

最近用layui做后台练习,要用到批量删除功能,是基于SSM框架的,批量删除用在于当用户想删掉多条数据的时候,可以把要删的数据先打钩,然后再一键删除,我这里是真删除,不是修改状态而已,如果不想真删除的话就改成修改状态吧,原理差不多。

如图

 

首先是sql语句

<!-- 批量删除 -->
  <delete id="deleteList" parameterType="java.lang.String">
  	delete from cars where cars_id in 
  	<foreach item="ids" collection="array" index="no" open="(" separator="," close=")">
  		#{ids,jdbcType=VARCHAR}
  	</foreach>
  </delete>

 

Mapper

	/**
	 * 批量删除
	 */
	void deleteList(Integer[] ids);

 

Impl

	@Override
	public void deleteList(Integer[] ids) {
		// TODO Auto-generated method stub
		carDao.deleteList(ids);
	}

 

控制器

/**
	 * 批量删除
	 */
	@ResponseBody 
	@RequestMapping("/delIds")
	  public String deleteByIds(Integer[] ids,HttpServletResponse response) { 
		 JSONObject jsonObject=new JSONObject();
		  //JsonReturn jsonReturn = new JsonReturn();
		  //判断取到的数组id是否为空
		 if(ids==null) {
			 jsonObject.put("msg", "删除失败");
		 }
		 else {
			 iCarService.deleteList(ids);
			 jsonObject.put("msg", "删除成功");
		 }
		 //OutUtil.print(jsonObject,response);
		return gson.toJson("删除成功");  
	  }

 

Jsp的js代码

$("#datadel").on('click',function(){
	 //获取选中状态
	 var checkStatus = table.checkStatus('relTable');
	 //获取选中数量
	 var selectCount = checkStatus.data.length;
	 if(selectCount== 0){
		 layer.msg('至少选一个吧',function(){});
		 return false;
	 }
	 layer.confirm('真的要删除选中的项吗?',function(index){
		 layer.close(index);
		 index=layer.load(1,{shade:[0.1,'#fff']});
		 
		 var isStr="";
		 for(var i=0;i<selectCount;i++){
			 isStr=isStr+","+checkStatus.data[i].carsId;
		 }
		 $.ajax({
			 type:'post',
			 data:{"ids":isStr},
			 url:'${ctx}/cars/delIds.do',
			 success:function(data){
				 if(data.code==0){
					 $('#reload').click();
				 }
				 layer.close(index);
				 layer.msg('删除成功!');
				 table.reload('relTable',{});
			 },erro:function(code){
				 layer.msg('操作失败!');
			 }
		 })
	 })
 });

 

效果图

 

刚开始做的时候会出现很多bug,比如删除的时候没反应,传值没传过去,后来发现是写少了代码,或者显示删除成功了,但是表格没反应,就去数据库看到底有没有删除掉,数据库是删了的话,那就是表格刷新的问题了,有问题不能慌,一点一点去分析,把大问题拆分成小问题,最后还是可以解决的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值