Mybatis:基础知识5-动态sql

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fly910905/article/details/88242118

动态sql(重点)

mybatis重点是对sql的灵活解析和处理。

需求

自定义查询条件查询用户列表和查询用户列表总记录数改为动态sql

if和where

 

sql片段

通过sql片段可以将通用的sql语句抽取出来,单独定义,在其它的statement中可以引用sql片段。

通用的sql语句,常用:where条件、查询列

 

​​​​​​​sql片段的定义

 

​​​​​​​引用sql片段

 

 

​​​​​​​foreach

在statement通过foreach遍历parameterType中的集合类型

需求:

根据多个用户id查询用户信息。

 

在userQueryvo中定义list<Integer> ids存储多个id

 

 

​​​​​​​修改where语句

 

使用foreach遍历list:

 

​​​​​​​测试代码

 

动态 SQL 总结

在使用动态 SQL 语句的时候,咱们需要多注意以下几点:

  1. 通过 if 标签来判断字段是否为空,如果为空,则默认不参与到 SQL 语句中,并且可以自动省略逗号;
  2. 通过 where 标签来输出条件完成判断,其可以自动省略多余的 and 和 逗号;
  3. 通过 set 标签来完成修改操作,当字段值为 null 时,其不参与到 SQL 语句中;
  4. 在 foreach 标签中,collection 属性表示传入的参数集合, item 表示每个元素变量的名字,open 表示开始字符,close 表示结束字符,separator 表示分隔符;
  5. 任何参数都可以封装到 Map 中,其以 key 来取值。

猜你喜欢

转载自blog.csdn.net/fly910905/article/details/88242118