Java自学之mybatis:模糊查询和多条件查询

学习目的

使用mybatis进行模糊查询:查找category_表中包含cat的记录。

使用mybatis进行多条件查询:查找category_表中id>1,包含cat的记录。

Part 1

模糊查询

修改pojo.xml,新增一个查询配置。

parameterType:传参的类型。

resultType:查询结果的类型。

注意:concat('%',#{0},'%')是MySQL的写法,oracle的写法是 '%'||#{0}||'%'。

<select id="listCategoryByName"  parameterType="string" resultType="Category">
            select * from   category_  where name like concat('%',#{0},'%')
</select>

测试代码块

    /**
     * 模糊查找:%cat%
     * @param session
     */
    public static void listCategoryByName(SqlSession session){
        List<Category> categoryList = session.selectList("listCategoryByName","cat");
        for (Category c :
                categoryList) {
            System.out.println(c.getName());
        }
    }

测试结果:

v2-e0afb20461782e5c044e36afa4bdfea0_b.jpg

Part 2

多条件查询

修改pojo.xml,新增一个查询配置。

    <select id="listCategoryByIdAndName"  parameterType="map" resultType="Category">
        select * from   category_  where id > #{id}  and name like concat('%',#{name},'%')
    </select>

测试代码块:

    /**
     * 多条件查询
     * @param session
     */
    public static void listCategoryByIdAndName(SqlSession session){
        Map map = new HashMap();
        map.put("id",1);
        map.put("name","cat");
        List<Category> categoryList = session.selectList("listCategoryByIdAndName",map);
        for (Category c :
                categoryList) {
            System.out.println(c.getId()+"\t"+c.getName());
        }
    }

测试结果

v2-4e0f488b4e3fa94ea0b4cafe323d79eb_b.jpg

参考文档:

mybatis - MyBatis 3

posted @ 2020-02-26 22:36  IMKKA  阅读(42)  评论(0)    收藏  举报  来源