mybatis的动态sql

138 阅读1分钟

作用

动态sql就是(在进行sql操作的时候)动态的根据属性值(所匹配的条件)来拼接数据库执行的sql语句,也就是多次查询或变更操作,根据传入的属性值不同,动态拼接出不同的可执行sql。包含判断为空、循环等

  • :if是为了判断传入的值是否符合某种规则,比如是否不为空;
  • : where标签可以用来做动态拼接查询条件,当和if标签配合的时候,不用显示的声明类似where 1=1这种无用的条件;
  • :他们的作用类似于 Java 中的 switch、case、default。只有一个条件生效,也就是只执行满足的条件 when,没有满足的条件就执行 otherwise,表示默认条件;
  • :foreach标签可以把传入的集合对象进行遍历,然后把每一项的内容作为参数传到sql语句中,里面涉及到 item(具体的每一个对象), index(序号), open(开始符), close(结束符), separator(分隔符);
  • **:**include可以把大量重复的代码整理起来,当使用的时候直接include即可,减少重复代码的编写
  • 适用于更新中,当匹配某个条件后,才会对该字段进行更新操作
  • **:**是一个格式化标签,主要有4个参数:
    • prefix(前缀);
    • prefixOverrides(去掉第一个标记);
    • suffix(后缀);
    • suffixOverrides(去掉最后一个标记);