动态 SQL_条件语句_ choose, when, otherwise

有些时候,我们不想用到所有的条件语句,而只想从中择其一二。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句。

还是上面的例子,但是这次变为提供了"title"就按"title"查找,提供了"author"就按"author"查找,若两者都没有提供,就返回所有符合条件的BLOG(实际情况可能是由管理员按一定策略选出BLOG列表,而不是返回大量无意义的随机结果)


SELECT * FROM TNotific 
<where>
	<choose>
		<when test="method != null">
			and Method = #{method,jdbcType=VARCHAR}
		</when>
		<when test="statusOfread != null">
			and StatusOfread = #{statusOfread,jdbcType=VARCHAR}
		</when>
		<otherwise>
			and BizCaseId = #{bizCaseId,jdbcType=VARCHAR}
		</otherwise>
	</choose>
</where>

入参
String statusOfread = "0";String method = "PUSH";String bizCaseId = "10000000012028";
执行SQL 和参数
SELECT * FROM TNotific WHERE Method = ?
Parameters: PUSH(String)

入参
String statusOfread = "0";String method = null;String bizCaseId = "10000000012028";
执行SQL 和参数
SELECT * FROM TNotific WHERE StatusOfread = ?
Parameters: 0(String)


入参
String statusOfread = null;String method = null;String bizCaseId = "10000000012028";
执行SQL 和参数
SELECT * FROM TNotific WHERE BizCaseId = ?
Parameters: 10000000012028(String)

入参
String statusOfread = null;String method = null;String bizCaseId = null;
执行SQL 和参数
SELECT * FROM TNotific WHERE BizCaseId = ?
Parameters: null

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值