SSM-MyBatis-11:Mybatis中查询全部用resultmap

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

实体类很普通,四个字段,编号,名字,作者名,价格

在接口中的方法声明如下

//查全部
    public List<Book> findAllBook();

在小配置中如下

<!--resultmap-->
    <resultMap id="bookMapper" type="Book">
        <id column="bookID" property="bookID"></id>
        <!--默认的自动映射行为是PARTIAL部分映射,就不用写bookname也能装配到-->
    </resultMap>
    <!--resultmap-->
    <select id="findAllBook" resultMap="bookMapper">
        select * from book
    </select>

他默认的自动映射行为是PARTIAL,部分的,也就是开启的,他也可以手动设置,关闭自动映射行为

设置方法是在大配置文件中

<!--<settings>
        自动映射行为
        <setting name="autoMappingBehavior" value="NONE"/>
    </settings>-->

它的意思是关闭NONE,这个不用关,所以我就是简单的操作后就注释掉了

测试类中

///查全部用resultmap
    @Test
    public void t1SelectAll(){
        String path = "mybatis-config.xml";

        try {
            InputStream e = Resources.getResourceAsStream(path);
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            SqlSessionFactory factory = builder.build(e);
            SqlSession session = factory.openSession();
            IBookDAO mapper = session.getMapper(IBookDAO.class);
            List<Book> list = mapper.findAllBook();
            for (Book item:list) {
                System.out.println(item.getBookName());
            }

            session.close();
        } catch (IOException var9) {
            var9.printStackTrace();
        }
    }
原文地址:https://www.cnblogs.com/DawnCHENXI/p/8467497.html