Skip to content

5.resultType结果集处理

FuriousPws002 edited this page Apr 12, 2024 · 1 revision

代码分支:05-result-set-handler-with-result-type

用ResultMap对象封装resultType的class信息,解析mapper时存入到MappedStatement中,ResultSetWrapper则封装了包含ResultSet,以及结果集列名称的配置信息,ResultSetHandler中的handleResultSets方法作为解析ResultSet对象到POJO对象的入口,DefaultResultSetHandler是ResultSetHandler接口的默认实现,TypeHandler拥有了设置入参和获取指定列名称值的能力。

单元测试:

public class SqlSessionTest {

    @Test
    public void queryPOJOHandleTheResult() {
        Configuration configuration = new Configuration();
        configuration.setDataSource(DataSourceBuilderTest.build());
        configuration.addMapper(UserMapper.class);
        SqlSession sqlSession = new DefaultSqlSession(configuration);
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List<UserDO> list = userMapper.select();
        Assert.assertNotNull(list);
        UserDO userDO = list.get(0);
        Assert.assertNotNull(userDO.getName());
        Assert.assertNotNull(userDO.getNamex());
    }
}
Clone this wiki locally