我是靠谱客的博主 狂野水蜜桃,最近开发中收集的这篇文章主要介绍动态 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

 

最后

以上就是狂野水蜜桃为你收集整理的动态 SQL_条件语句_ choose, when, otherwise的全部内容,希望文章能够帮你解决动态 SQL_条件语句_ choose, when, otherwise所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部