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语句内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!