我是靠谱客的博主 坦率小土豆,最近开发中收集的这篇文章主要介绍【MyBatis框架】动态SQL之choose,when,otherwise详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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详解所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部