MyBatis通过 OGNL 来进行动态 SQL 书写。
几种常用标签:
元素 | 常用属性 | 作用 | 示例 |
---|---|---|---|
if | test | 判断语句,单支条件 | <if test="name != null and name !=''">and name like concat('%', #{name}, '%')</if> |
choose(when、otherwise) | test | if else 多条件 | <choose><when>...</when><otherwise>...</otherwise></choose> |
trim(where、set) | prefix,suffix,suffixOverrides | 格式化SQL | <trim prefix="(" suffix=")" suffixOverrides=","><if></if></trim> |
foreach | collection,item,open,close,separator,index | 循环语句,批量操作 | where id in<foreach collection="list" item="id" open="(" close=")" separator="," index="i">#{id}</foreach> |
sql | id | 抽取公共代码 | <sql id="Base_Column_List"> |
include | refid | 引用,结合sql标签引用代码 | <include refid="Base_Column_List" /> |
注意:
一个 choose 标签至少有一个 when, 最多一个otherwise