动态 SQL 语句

1. 动态 sql 语句概述

MyBatis 的另一个一个强大功能是提供了动态 SQL !
image.png

2. 环境搭建

image.png
image.png
image.png
上面模拟出来的 User 的三个属性信息都提供了,那么传递给 sql 语句自然也就可以查询到了。
但是,假如给的 User 只有两个属性,或者只有一个属性,也就是动态的,不清楚要给几个属性,那么上面写的 sql 语句就会失效,查询结果为空,如果我们要想仍然可以查询到对应给的属性的数据,那么如何解决这种问题呢?用动态 SQL if 可以解决此问题。
image.png

动态 SQL: 可实现组合查询

进行 SQL 语句的拼接。
image.png
可以实现多条件组合查询。
卧槽,之前我第一个项目写的多条件组合查询好像非常复杂,这里的动态 sql 之间就解决了,干!
如果查询的时候一个属性也不给,那么下面的 标签就不会进去,但不意外着 SQL 语句失效了,会继续执行 select * from user !
所以, 标签也是 MyBatis 提供的,会自己判断执不执行。

动态 SQL:

image.png
业务场景:根据传入的不定个 id 值查询数据
image.png
image.png
测试:
image.png

SQL 片段抽取

image.png
image.png

知识小结

image.png