在 MyBatis 3 之前的版本中,使用动态 SQL 需要学习和了解非常多的标签,现在 MyBatis 采用了功能强大的 OGNL( Object-Graph Navigation Language)表达式语言消除了许多其他标签, 以下是 MyBatis 的动态 SQL 在 XML 中支持的几种标签 。
- if
- choose(when、oterwise)
- trim(where、set)
- forrach
- bind
if:通常用于 查询或修改where条件、 修改时是否修改某个字段、insert时判断是否插入某个字段。
select * from table where 1=1
<if test="userName != null and userName !='' "> and user name like concat('%',#{userName}, '%') </if>
这里的 where 1=1是要带着的,如果是写在<where>标签中就不用带了。