动态sql主要是解决我们进行条件查询时得应用,在之前我们需要对某个字段进行判断,直接在bao层实现类编写即可,因为它本身就是java类,写的Java代码,我们直接判断即可

但是使用XML得时候,我们得sql是写在xml中的,这样就无法编写代码,那么就可以使用动态sql

这里写目录标题

  • 1、if
  • 2、where
  • 3、Choose标签
  • 4、Set 标签
  • 5、Trim标签
  • 6、Foreach标签
  • 7、Bind标签
  • 8、sql

1、if

if其中test属性使用的得就是ognl表达式,他在获取字段得时候,可以直接获取,不用编写#{}

2、where

where标签,之前在拼接条件查询的字符,会通过where 1=1进行 无条件查询。那么通过这个标签,会自动在sql后面添加where关键字进行拼接,并自动忽略 第一个and

3、Choose标签

这个标签相当于if。。else if

4、Set 标签

这个标签主要用于修改
举例:
编写接口

之前我们在进行数据修改的时候,我们到最后无论改不改动,都会自动提交,那么效率相当于在做无用功
那么我们就需要对像中的每个字段进行调用

但这总编写的有一个错误,那就是如果我们只改了某一个值得话,那么另一个值虽然不会拼接,但是第一个条件语句有一个‘,’
但是又不能没有,所以无法避免这种情况

这个时候就可以使用set关键字了


这样就很好得解决问题

5、Trim标签


6、Foreach标签

需求:
当想要获得多个id得数据,sql应该是:

那我们 正常在程序中应该写

正常sql写法
但是我们想要操作,就需要用到forEach
其实我们在进行操作得时候,使用List,还有Array,都是存储在map中得,使用标签进行遍历

7、Bind标签

Bind标签主要用于模糊查询

模糊查询主要友两种方法,第一种是通过百分号,另一种是通过coucat

8、sql


在使用过程中,直接引入

如有帮助,请支持,一分不嫌少

mybatis动态sql,条件判断详解示例相关推荐

  1. MyBatis中动态sql语句标签详解

    动态 SQL 通常写在mapper包下面的地址映射配置文件(.xml)中.根据条件的不同, SQL 语句也会随之动态的改变. MyBatis 中,提供了一组标签用于实现动态 SQL. 动态SQL语句标 ...

  2. mysql 动态sql 解析_MyBatis详解5.动态SQL

    字节跳动飞书内推! 北京.杭州.武汉.广州.深圳.上海,六大城市等你来投. 感兴趣的朋友可以私我咨询&内推,也可以通过链接直接投递! 海量HC,极速响应,快来和我成为同事吧. 今日头条.抖音. ...

  3. SQL 函数 —— TRUNCATE详解示例

    TRUNCATE(X,D) X 表示需要处理的数字,D 表示需要截取的位数.如果 D 为零,则返回的数字不含小数.D 也可以是负数,这样会把整数的部分置零. 示例如下: mysql> SELEC ...

  4. 一文详解Mybatis动态SQL,建议收藏

    一文详解Mybatis动态SQL,建议收藏 1.动态 SQL 2.IF 3.choose.when.otherwise 4.where 5.set 6.trim 7.SQL片段 8.foreach 1 ...

  5. 详解mybatis动态SQL

    什么是动态SQL? 动态 SQL 是 MyBatis 的强大特性之一.顾名思义,就是会动的SQL,即是能够灵活的根据某种条件拼接出完整的SQL语句.这种类似于MySQL中的 case when the ...

  6. MyBatis动态SQL详解

    一:MyBatis动态 sql 是? 1.动态 SQL 是 MyBatis 的强大特性之一.在 JDBC 或其它类似的框架中,开发人员通常需要手动拼接 SQL 语句.根据不同的条件拼接 SQL 语句是 ...

  7. MyBatis动态SQL语法详解(二)

    文章目录 一.MyBatis查询返回 1.1.MyBatis查询返回对象 1.2.MyBatis查询返回list集合 1.3.MyBatis查询返回Map 1.4.MyBatis查询自定义结果映射规则 ...

  8. mybatis注解动态sql_超全MyBatis动态SQL详解

    MyBatis 令人喜欢的一大特性就是动态 SQL.在使用 JDBC 的过程中, 根据条件进行 SQL 的拼接是很麻烦且很容易出错的.MyBatis 动态 SQL 的出现, 解决了这个麻烦. MyBa ...

  9. 【java学习之路】(java框架)004.Mybatis SQL映射文件详解

    02Mybatis SQL映射文件详解 ​ 在之前我们学习了mybatis的全局配置文件,下面我们开始学习mybatis的映射文件,在映射文件中,可以编写以下的顶级元素标签: cache – 该命名空 ...

  10. MyBatis list Contains MyBatis 动态SQL 判断List Contains

    MyBatis list Contains MyBatis 动态SQL 判断List Contains 一.情景描述 在使用MyBatis 动态SQL查询时,有时候需要判断集合中是否有某个元素,若存在 ...

最新文章

  1. 第十五届全国大学生智能汽车竞赛ROS组车模线上比赛
  2. 为什么平衡对游戏数值策划如此重要
  3. android 按钮放中间,Android实现button居中的方法
  4. 2017.4.6AM
  5. DBCC--CHECKIDENT
  6. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
  7. jenkins自动部署配置
  8. Docker - 容器编排工具 compose 之安装
  9. 用欧拉角表示旋转(方位)heading pitch bank 含义,形象的图示
  10. c语言dll注入进程,DLL注入--设置消息钩子
  11. 中兴新支点操作系统_中兴新支点操作系统
  12. MATLAB图像灰度图处理
  13. qPCR定量方法在肠道微生物特定种属定量应用
  14. Linux crontab 定时执行任务
  15. 嘉兴 机器人仓库 菜鸟_菜鸟在嘉兴推出全新智能仓 在“双11”启用超级机器人仓群...
  16. 整理苹果官网上iOS的各种辅助功能
  17. CF1463-C. Busy Robot
  18. wps生成正态分布的随机数_WPS中用excel做正态分析.doc
  19. PM、RD、QA、OP
  20. C#图像处理:在图片上写字,文字位置居中问题

热门文章

  1. EasyStack郭长波连任OpenStack基金会独立董事
  2. 【答题卡识别】基于matlab形态学答题卡识别【含Matlab源码 1135期】
  3. 【采集读写】基于matlab语音采集与读写【含Matlab源码 538期】
  4. cocos creator 数组_5Cocos Creator 脚本简介
  5. php 的主要功能和特点,PHPMailer的主要功能特点和简单使用说明
  6. 四种依恋类型_你们之间的爱情是哪种类型 | 爱情依恋关系测评
  7. Python:批量修改图片的后缀名(模板)
  8. allegro中10mil过孔_Allegro中增加过孔的方法
  9. C++ map, 运用map统计单词出现的次数
  10. 关系抽取;串联抽取和联合抽取论文总结