今天刚刚学习了mybatis,做了简单的对数据库的增删改查。在进行删除操作时,单条删除时很简单,但是批量删除的时候拼接删除条件却有些麻烦,现记录一下做法。

Sql语句中,当删除条件并不唯一的时候,我们有两种删除的sql语句,一种使用or拼接where中的条件,例如delete from 表名where 条件1 or 条件2,另一种是使用in 例如delete from 表名where 元素in( )

利用第一种删除语句在mybatis中的mapping.xml中进行拼接:

利用第二种删除语句在mybatis中的mapping.xml中进行拼接:

以上删除操作基本完成,但是,这样有一个缺陷,当查询条件idList中没有元素的时候,会删除整个表ac01中的记录。所以,我们需要对上述方法进行改进。

第二种删除语句进行改进后:

第一种删除语句进行改进后:

至此,删除操作完美完成。

补充知识:myBatis 查询时注意and拼接条件

and jcb.danweimc like '%${danweimc}%'

and DATE_FORMAT(jcb.jianchaks, '%Y-%m-%d') >= #{ge_jianchaks}

and DATE_FORMAT(jcb.jianchaks, '%Y-%m-%d') <= #{le_jianchaks}

and jcb.jiancharxm like '%${jiancharxm}%'

and yhb.zhuangtai = ${zhuangtai}

and yhb.yinhuanmc like '${danweilb}%'

and jcb.jiedao=#{jiedao}

and jcb.danweimc = #{danweimcs}

例如上诉问题 要么都加and ,要么都不加 ,一定要注意,如果有加and 和没有加and的 查询会报错

以上这篇解决myBatis中删除条件的拼接问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

mysql使用mybatis删除不生效_解决myBatis中删除条件的拼接问题相关推荐

  1. python字符串拼接数字_解决Python中字符串和数字拼接报错的方法

    解决Python中字符串和数字拼接报错的方法 前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # co ...

  2. mybatis多字段排序_解决mybatis中order by排序无效问题

    1.#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by "111&qu ...

  3. mysql 视图删除单条记录_从视图中删除行会从MySQL的基表中删除行吗?

    是的,从视图中删除行从基表中删除行.让我们通过创建一个新表来了解这一点.创建表的查询如下mysql> create table deleteFromBaseTableDemo -> ( - ...

  4. python对象一定要删除引用吗_在Python中删除一个对象和所有对它的引用?

    如果我理解正确,你将包装一些C代码,并且C代码有一个可以被调用的析构函数.之后,任何使用指向C代码对象的指针的尝试都会导致致命的崩溃. 我不确定你的具体情况,所以我将给你两个替代答案. 0)如果C对象 ...

  5. mysql delete语句非常耗时_解决项目中MySQL数据库执行删除语句时间太长的问题

    问题描述: 由于业务需求,需要删除一些重复数据.即删除openid对应的2条数据,最终只保留一行. MySQL数据库,sql语句比较简单:删除数据前,备份数据是必须的! 先来错误的演示: 1.先把错误 ...

  6. case mybatis 不同表_解决mybatis case when 报错的问题

    在mybatis中使用case when进行条件筛选判断时遇到 Failed to process, please exclude the tableName or statementId. 这样的报 ...

  7. MySQL删除空值语句_数据库语句sql 删除空记录

    最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法   编写人:CC阿爸   2014-3-14 其实 ...

  8. 装mysql最后一步没响应_解决MySQL安装到最后一步未响应的三种方法

    这种情况一般是你以前安装过MySQL数据库服务项被占用了. 解决方法: 方法一:安装MySQL的时候在这一步时它默认的服务名是"MySQL" 只需要把这个名字改了就可以了.可以把默 ...

  9. 安装fitz报错_解决python 虚拟环境删除包无法加载的问题

    项目开发一直在docker的虚拟环境上,遇到了一个问题,就是把虚拟环境的包删掉(rm -rf xxx)之后,再重新拷贝一个(跟原来包一模一样的文件夹)进去发现pycharm再也找不到这个包了,后来在同 ...

  10. 怎么删除linux桌面文件夹,为什么桌面上的文件夹删除不掉_桌面文件夹无法删除的解决教程...

    我们在使用电脑工作或是学习时,因为一些需要经常会创建或下载一些文档,这些文档一般都是用完就删的.但有的网友却遇到了桌面文件夹无法删除的情况,这是为什么呢?我们又该怎么来处理呢?对此今天本文就来为大家分 ...

最新文章

  1. stm32采集脉冲信号_STM32 TIM 编码器模式采集编码器信号
  2. 知识产权创业的比赛结果
  3. 医院计算机管理在品管圈中的应用,品管圈在医院管理中怎么用?看完就明白了...
  4. mysql添加外键约束的两种方式(重要)
  5. ANSI X9.8标准 PIN xor PAN获取PIN BlOCK
  6. 让VMware ESXi 5.5与Windows时间服务器同步
  7. 小车自动往返工作原理_请把小车自动往返控制线路的工作原理描述一下。
  8. javascript遍历对象的所有的属性
  9. Elasticsearch Trying to create too many scroll contexts. Must be less than or equal to: [500]
  10. 电脑基础知识入门:键盘上的英文,意思和功能汇总!
  11. e路航LH900N导航仪凯立德最新版本地图更新方法
  12. 2014年总结——回眸过去
  13. python爬虫 提取豆瓣Top250电影信息
  14. oracle外部表kup-04023,kup-04040访问外部表时
  15. uni-app如何设置整个项目的统一背景色
  16. chrome浏览器最新离线版下载 30-72版本全
  17. 遇到 腾讯云 由于连接云服务器超时 的问题
  18. Linux命令--wget
  19. (附源码)Springboot+mysql+基于VUE框架的商城综合项目设计与实现 毕业设计111612
  20. ZooKeeper: Wait-free coordination for Internet-scale systems

热门文章

  1. python中的多线程(一)
  2. 程序员的能力模型与沟通技巧
  3. Java虚拟机知识点【栈帧】
  4. [AHOI 2012]树屋阶梯
  5. oralce数据库创建同义词
  6. 深入Java集合学习系列:SynchronousQueue实现原理
  7. Oracle表空间设计理念
  8. 使用wordpress的心得
  9. 基于强化学习和析取图模型的统一调度框架
  10. 【linux系统学习笔记】linux基本操作