MyBatis动态SQL中trim标签的运用

来源:互联网 发布:域名注销查询 编辑:程序博客网 时间:2024/05/17 05:04
MyBatis动态SQL中trim标签的使用

  My Batis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少。

  事实上trim标签有点类似于replace效果。

  trim 属性

  prefix:前缀覆盖并增加其内容

  suffix:后缀覆盖并增加其内容

  prefixOverrides:前缀判断的条件

  suffixOverrides:后缀判断的条件

  比如:

  select b.* from sys_menu b where 1 = 1<trim suffix="WHERE" suffixOverrides="AND | OR"><if test="id != null and id !='' ">AND b.id =#{id} </if><if test="name != null">AND b.menu_name like #{name}</if></trim>

  最终sql打印为:

  select b.* from sys_menu b where 1 = 1 AND b.menu_name like '' WHERE

  从结果可以发现:

  <trim suffix="WHERE" suffixOverrides="AND | OR">

  suffix是针对符合suffixOverrides的SQL语句追加后缀suffix值。

  总而言之:

  <trim suffix="WHERE" suffixOverrides="AND | OR">

  And sqlxxx

  最终结果是:

  And sqlxxx WHERE

  我不是很确认这种用法的具体场景,但是,就目前mybatis的动态sql语句来看的话,很多标签都足够用了。

0 0