顾名思义“动态”SQL就是不固定的SQL,根据不同的条件把SQL语句进行拼接,来实现对数据库更加精准的操作。可以通过配置文件或者注解的形式实现,多用于多条件联查。
xml版(配置文件):
xml版的动态SQL 接口中的方法名要和配置文件中的id名一样必须是唯一的。在调接口的时候自动会调用对应id 的这个SQL语句,出参和入参的类型必须要和接口中的出参入参类型一样。
xml版常用的元素:
if元素:单条件判断
choose元素:多条件判断
trim元素:万能标签
prefix:前缀
prefixOverrides:去掉第一个and或者是or
suffix:后缀
suffixOverrides:去掉最后一个逗号,也可以是其他的标记
foreach元素:循环语句
collection:可用通过@Param注解指定参数名,参数List
item:参数调用名称,参数List的单个值
open:在循环前添加前缀
close:在循环后添加后缀
i ndex:索引、下标
like模糊查询:五种模糊查询的方式
注解版:注解版相对于xml版对我个人来说感觉就是更适合搞一些简单的增删改查,过于复杂的语句会让书写难度大大的提升,而且注解版依旧硬编码问题严重 注解版方法调用的是距离最近的一个SQL语句
两个写法无论可以先专精一个然后再去适应第二个 到两个都得心应手的时候两个随意切换也不失为一种快乐。