1. 前言
本小节我们将一起学习 choose 和 bind 标签。
choose 标签是 if 标签的增强版,适用于更加复杂的条件判断逻辑;而bind 标签则可以在 OGNL 上下文环境中新绑定一个变量,供后面的 SQL 使用。
2. 定义
解释:
choose
标签相当于编程语言 if…else 语句,用于动态 SQL 中的多条件判断,是 if 标签的增强版。
bind
标签可以在动态 SQL 中通过 OGNL 表达式来创建一个新的变量绑定到上下文中,供后续的 SQL 使用。
3. 实例
下面是一个融合了 choose 和 bind 标签的实例:
<select id="selectUserByLikeName" resultType="com.5axxw.mybatis.model.User">
SELECT * FROM 5axxw_user
WHERE username LIKE
<choose>
<when test="_databaseId == 'mysql'">
CONCAT('%',#{username},'%')
</when>
<when test="_databaseId == 'postgre'">
'%' || #{username} || '%'
</when>
<otherwise&g