mybatis 根据id批量删除的实现操作
第一种,直接传递给mapper.xml集合/数组形式
deletefromuserwhere1>2 oridin #{item}
1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
intdeleteByLogic(Listlist);
2.如果传入的是单参数且参数类型是一个array数组的时候,参数类型为parameterType="int"集合collection的属性值为array
intdeleteByLogic(int[]array);#{item}
第二种,直接在service中将数据给分装传递到mapper中
前端封装为以,为分隔符的id字符串。调用下方工具类。生成数据类型为(‘12',‘34'....)形式
/** *StringUtil.getSqlInStrByStrArray()
*Author:wyp
*Date:2016年6月15日下午6:14:05
*Desc:数组字符串转换为SQLin字符串拼接
*@paramstrArray数组字符串 *@returnSQLin字符串 */ publicstaticStringgetSqlInStrByStrArray(Stringstr){ StringBuffertemp=newStringBuffer(); if(StringUtils.isEmpty(str)){ return"('')"; } temp.append("("); if(StringUtils.isNotEmpty(str)){ String[]strArray=str.split(","); if(strArray!=null&&strArray.length>0){ for(inti=0;i在mapper中直接使用$符号接收即可
intdeleteByLogic(Stringids);deletefromuserwhere1>2 oridin${ids} 还有第三种。不过比较浪费资源
直接在service中循环调用mapper中的delete方法。.....
补充知识:mybatis中一次执行多条SQL语句,例如一次性删除多条数据
1.首先在数据库连接URL上加上allowMultiQueries=true,默认mysql是不支持一次执行多条SQL语句的。
jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
2.在delete节点中添加多条语句:
deletefrommusic_favoritewhereid=#{id,jdbcType=INTEGER}; deletefrommusic_favorite_songwheref_id=#{id,jdbcType=INTEGER}; 这可以用在mybatis的级联关系删除上,删除主表记录前,先删除关联表的记录,两条一起执行。
以上这篇mybatis根据id批量删除的实现操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。