mybatis 根据id批量删除的两种方法
原文:https://blog.csdn.net/qq_40010745/article/details/81032218
mybatis 根据id批量删除的两种方法
第一种,直接传递给mapper.xml 集合/数组形式
- <delete id="deleteByLogic" parameterType = "java.util.List">
- delete from user where 1>2
- or id in
- <foreach collection="list" item="item" open="(" separator="," close=")" >
- #{item}
- </foreach>
- </delete>
1. 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
int deleteByLogic(List list);
2. 如果传入的是单参数且参数类型是一个array数组的时候, 参数类型为parameterType="int" 集合 collection的属性值为array
int deleteByLogic(int[] array);
- <foreach item="item" collection="array" open="(" separator="," close=")">
- #{item}
- </foreach>
第二种,直接在service中将数据给分装传递到mapper中
前端封装为以,为分隔符的id字符串。调用下方工具类。生成数据类型为(‘12’,‘34’....)形式
- /**
- * StringUtil.getSqlInStrByStrArray()<BR>
- * <P>Author : wyp </P>
- * <P>Date : 2016年6月15日下午6:14:05</P>
- * <P>Desc : 数组字符串转换为SQL in 字符串拼接 </P>
- * @param strArray 数组字符串
- * @return SQL in 字符串
- */
- public static String getSqlInStrByStrArray(String str) {
- StringBuffer temp = new StringBuffer();
- if(StringUtils.isEmpty(str)){
- return "('')";
- }
- temp.append("(");
- if(StringUtils.isNotEmpty(str)){
- String[] strArray=str.split(",");
- if (strArray != null && strArray.length > 0 ) {
- for (int i = 0; i < strArray.length; i++) {
- temp.append("'");
- temp.append(strArray[i]);
- temp.append("'");
- if (i != (strArray.length-1) ) {
- temp.append(",");
- }
- }
- }
- }
- temp.append(")");
- return temp.toString();
- }
在mapper中直接使用 $ 符号接收即可
int deleteByLogic(String ids);
- <delete id="deleteByLogic" parameterType = "java.util.List">
- delete from user where 1>2
- or id in ${ids}
- </delete>
还有第三种。不过比较浪费资源
直接在service中循环调用mapper中的delete方法。.....
mybatis 根据id批量删除的两种方法的更多相关文章
- oracle多表关联删除的两种方法
oracle多表关联删除的两种方法 第一种使用exists方法 delete from tableA where exits ( select 1 from tableB Where tableA.i ...
- mybatis学习之路----批量更新数据两种方法效率对比
原文:https://blog.csdn.net/xu1916659422/article/details/77971696/ 上节探讨了批量新增数据,这节探讨批量更新数据两种写法的效率问题. 实现方 ...
- 【ADO.NET-中级】百万级数据的批量插入的两种方法测试
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量 ...
- VIM 批量注释的两种方法 (转)
方法一 ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I(shift+i),再插入注释符,比如"//",再按Esc,就会全部注释了 批 ...
- mysql批量update的两种方法
today a question let me happy(抓狂) 头儿分了一个小任务,让修改循环调用dao层的那些不啦不啦不啦,鉴于之前写过批量更新的玩意,so 很快代码就修改完了,but 测的时候 ...
- c#mysql批量更新的两种方法
总体而言update 更新上传速度还是慢. 1: 简单的insert 速度稍稍比MySqlDataAdapter慢一点 配合dapper 配置文件 <?xml version="1 ...
- Windows文件自删除的两种方法
可执行模块的自删除技术已经被讨论的很多, 有很多极富创意的思路和想法被提出, 但有些似是而非的方案往往使人误入歧途. 举个例子来说, 很多文章认为下面的一小段代码可以实现自删除:void main(v ...
- C# 批量新增的两种方法。
public class Test { private static readonly string strConnection = ""; public static void ...
- Mybatis新增返回主键的两种方法 (mysql)
1.自增:LAST_INSERT_ID (自动返回最后一个INSERT或 UPDATE 问询为 AUTO_INCREMENT列设置的第一个 发生的值.) <!-- mysql的自增ID :LAS ...
随机推荐
- ASP.NET中Gridview一些技巧
ASP.NET中Gridview一些技巧 一.后台覆盖掉Gridview中自动填充的值 我们可以再Gridview中的事件触发的过程中修改其中的值,而这些值将会在具体的运行过程中覆盖掉那些自动属性.这 ...
- vscode开发智能合约
开发工具 EOS 开发终极神器-vscode (你绝对找不到的干货) lome · 2018年04月19日 · 最后由 18636292520 回复于 2018年09月15日 · 15672 次阅读 ...
- Eclipse安装颜色主题,个性化你的IDE,让你的IDE焕然一新
我们都知道eclipse默认的颜色主题是白色的背景,但是如果想改变代码编辑区的背景颜色,需要怎么办呢? 今天给大家介绍一个非常赞的eclipse,可以很方便的根据自己的需求选择喜欢的颜色主题,其他的不 ...
- POJ 3498 March of the Penguins(网络最大流)
Description Somewhere near the south pole, a number of penguins are standing on a number of ice floe ...
- 20172330 2017-2018-1 《Java程序设计》第八周学习总结
学号 2017-2018-1 <程序设计与数据结构>第八周学习总结 教材学习内容总结 这一章主要是对多态性的学习: 由继承实现多态性 多态性引用能够随时间变化指向不同类型的对象. 对于多态 ...
- TCP系列04—连接管理—3、TCP连接的半打开和半关闭
在前面部分我们我们分别介绍了三次握手.四次挥手.同时打开和同时关闭,TCP连接还有两种场景分别是半打开(Half-Open)连接和半关闭(Half-Close)连接.TCP是一个全双工(Full-Du ...
- 软工网络15团队作业——Alpha阶段敏捷冲刺 DAY1
Alpha阶段敏捷冲刺 DAY1 1.各个成员在 Alpha 阶段认领的任务 姓名 在Alpha阶段所认领的任务 陈龙 题目生成类的编写,随机生成合理题目的算法编写 郑佳明 答案计算类的编写,对随机生 ...
- 关闭win7/Server 2008非正常关机启动自动修复功能
命令提示符下输入 bcdedit /set {default} bootstatuspolicy ignoreallfailures bcdedit /set {current} recoveryen ...
- c#控件的name和text属性有什么不同?
text 是显示出来,供用户和自己编辑方便使用的,name 属性是编辑代码用的. 比如要读取一个text栏的内容 取name='txtName' text='姓名'代码段需要写的是, txtName. ...
- Ubuntu 删除多余内核
Ubuntu 删除多余内核 转载▼ 首先查询当前我们使用的是内核是那个版本别删错了. uname -a 第二: 查询系统中装了多少内核 dpkg --get-selections|grep linux ...