网站首页 > 技术文章 正文
MyBatis之动态SQL讲解
mybatis
mysql
mybatis核心是对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。对查询条件进行判断,如果输入参数不为空才进行查询条件拼接。
if标签
if
where标签
if的配置也可以按照如下来写:
where
<where />可以自动处理第一个and。
foreach标签
向配置文件的sql传递数组或List,MyBatis使用foreach解析,如下:
如果我们需要传递多个id来查询多个用户的信息,可以使用foreach。SQL语句的写法如下:
sql查询
使用foreach如下(通过pojo传入list):
标签含义
list1
或者
list2
传递单个List
传递List类型在编写mapper.xml没有区别,唯一的区别是只有一个List参数时它的参数名为list。如下图:
单个list
传递单个数组
单个数组
sql只接收一个数组参数,这时sql解析参数的名称mybatis固定为array,如果数组是通过一个pojo传递到sql则参数的名称为pojo中的属性名。
传递单个简单数组类型
简单数组
如果数组的类型为简单类型则写为#{item},不用在通过ognl获取对象的属性值了。
SQL代码块
SQL中重复的SQL可以提取出来,调用时用include标签引用即可,最终达到SQL重复利用的目的,如下:
sql
如果有多个statement都使用相同的查询条件,那么就可以把查询条件抽取出来作为单独的SQL代码块。如下图:
sql 代码块
include的使用
include使用
解释
基本的POJO类型 User.java
User.java
自定义的POJO UserCustom
UserCustom.java
视图POJO QueryVo.java
QueryVo.java
这样满足基本的需求,如果我们在查询中需要加入其它查询条件,只需要修改QueryVo,这样就可以实现较好的可扩展性。
猜你喜欢
- 2024-10-16 mybatis各阶段的详解(mybatis 总结)
- 2024-10-16 mybatis学习笔记1(mybatis入门案例)
- 2024-10-16 Mybatis 集合and数组参数传递与注解增删改查
- 2024-10-16 Mybatis工作流程、架构以及配置说明
- 2024-10-16 mybatis常用 动态sql使用总结(干货分享)
- 2024-10-16 mybatis-plus 使用(mybatisplus in)
- 2024-10-16 Java避坑记录(java技巧)
- 2024-10-16 如何深度理解mybatis?(如何深度理解企业估值)
- 2024-10-16 Mybatis配置文件XML全貌详解,再不懂我也没招了
- 2024-10-16 Mybatis入门(Mybatis入门程序UserTest类中@test爆红)
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)