MyBatis之动态SQL
本文最后更新于:1 年前
用户的筛选条件不同,我们完成筛选所执行的 SQL 语句也不一样。虽然可以通过穷举来一一完成不同条件的筛选,但是这种实现思路过于繁琐和复杂,MyBatis就提供了动态SQL的配置方式来实现多条件查询。

什么是动态SQL?
动态SQL是指根据查询条件动态完成SQL的拼接。
动态SQL案例
1 | |
1 | |
方式一:自定义查询条件的实体类存放参数
DAO接口
| MemberSearchCondition.java |
|---|
![]() |
1 | |
映射文件
| MemberMapping.xml |
|---|
![]() |
![]() |
测试
| MemberDAOTest.java |
|---|
![]() |
![]() |
| MemberDAOTest.java |
|---|
![]() |
![]() |
| MemberDAOTest.java |
|---|
![]() |
![]() |
方式二:HashMap作为参数
DAO接口
1 | |
映射文件
| MemberMapper.xml |
|---|
![]() |
![]() |
测试
| MemberDAOTest.java |
|---|
![]() |
![]() |
where标签
使用where标签后,会将sql语句中第一个条件前的 and 或 or 去掉。
| MemberMapper.xml |
|---|
![]() |
trim标签
可以给sql语句的条件加前缀和后缀,并去除第一个条件前的 and 或 or。
| MemberMapper.xml |
|---|
![]() |
foreach标签
foreach标签用于sql语句中的 in 操作符,在WHERE 子句中规定多个值。
DAO接口
1 | |
映射文件
| MemberMapper.xml |
|---|
![]() |
测试
| MemberDAOTest.java |
|---|
![]() |
![]() |
| MemberDAOTest.java |
|---|
![]() |
![]() |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!
















