Mybatis動態SQL之IF語句詳解

Mysql 5.0 以後,支持瞭動態sql語句,我們可以通過傳遞不同的參數得到我們想要的值.

1. Mybatis–動態SQL之IF語句

沒有搭建環境的請點擊

1.1 BlogMapper.java

    //   查詢博客
    List<Blog> queryBlogIf(Map map);

1.2 BlogMapper.xml

    <select id="queryBlogIf" parameterType="map" resultType="Blog">
        select * from mybatis.blog where 1=1
        <if test="title != null">
            and title = #{title}
        </if>
        <if test="author != null">
            and author = #{author}
        </if>
    </select>

1.3 Test.java

1.3.1 第一種情況,不加任何查詢條件,默認會把所有數據查出來

    //    第一種情況,不加任何查詢條件,默認會把所有數據查出來
    @org.junit.Test
    public void test01() {
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
        Map map = new HashMap();
        List<Blog> blogs = mapper.queryBlogIf(map);
        for (Blog blog : blogs) {
            System.out.println(blog);
        }
    }

運行結果:

查詢出瞭所有記錄

1.3.2 第二種情況,添加參數title

    @org.junit.Test
    public void test01() {
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
        Map map = new HashMap();
        map.put("title", "Spring");
        List<Blog> blogs = mapper.queryBlogIf(map);
        for (Blog blog : blogs) {
            System.out.println(blog);
        }
    }

查詢出瞭一條記錄

1.3.3 第三種情況,添加2個參數

    @org.junit.Test
    public void test01() {
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
        Map map = new HashMap();
        map.put("title", "微服務");
        map.put("author", "天天天");
        List<Blog> blogs = mapper.queryBlogIf(map);
        for (Blog blog : blogs) {
            System.out.println(blog);
        }
    }

總結

到此這篇關於Mybatis動態SQL之IF語句的文章就介紹到這瞭,更多相關Mybatis動態SQL IF語句內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: