本文主要是介绍mybatis配置mapper是判断使用if还是choose when,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
mybatis使用mapper配置条件语句sql时根据条件判断使用不同的参数和处理方式,常常用到 if 和 choose when,容易弄混淆,为什么有了if还要使用choose when呢,我觉得如果if还有else标签的话就不需要choose when了。if和choose when的用法如下:
一、if(通过“title”和“book”两个参数进行可选搜索):
<select id="findBookLike"resultType="Book">SELECT * FROM BOOK WHERE state = ‘ACTIVE’ <if test="title != null">AND title like #{title}</if><if test="book != null and book.name != null">AND book_name like #{book.name}</if>
</select>
二、choose(我们不想应用到所有的条件语句,而只想从中择其一项):
<select id="findActiveBookLike"resultType="Book">SELECT * FROM BOOK WHERE state = ‘ACTIVE’<choose><when test="title != null">AND title like #{title}</when><when test="book != null and book.name != null">AND book_name like #{book.name}</when><otherwise>AND type = 1</otherwise></choose>
</select>
这篇关于mybatis配置mapper是判断使用if还是choose when的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!