概述
Choose:
只选择第一个成立的条件执行。后面的条件不对结果产生影响。
使用:
- 编写接口:
List<Book> queryBookByChoose(Map map);
编写配置文件
<select id="queryBookByChoose" parameterType="map" resultType="Book">
select * from book
<where>
<choose>
<when test="name!=null">
name=#{name}
</when>
<when test="author!=null">
and author=#{author}
</when>
<otherwise>
and seal=#{seal}
</otherwise>
</choose>
</where>
</select>
- 测试:
@org.junit.Test
public void testIf(){
SqlSession sqlSession=MyBatisUtils.getSqlSession();
BookMapper bookMapper=sqlSession.getMapper(BookMapper.class);
HashMap map=new HashMap();
map.put("name","三国");
//map.put("author","罗贯中");
map.put("seal",9990);
List<Book> bookList= bookMapper.queryBookByChoose(map);
for (Book book : bookList) {
System.out.println(book);
}
sqlSession.close();
}
- 结果:
虽然第二个选择条件销量没有满足,但是第一个选择条件满足了,所以第二个选择条件就不会对结果产生影响。
最后
以上就是坦率小土豆为你收集整理的【MyBatis框架】动态SQL之choose,when,otherwise详解的全部内容,希望文章能够帮你解决【MyBatis框架】动态SQL之choose,when,otherwise详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复