MyBatis可以自动将查询结果封装到bean中,前提条件是bean的属性名和查询的结果列名相同,就会一次对应存储。
如果查询结果的列名和bean的属性名不一致,则需要手动映射结果集
<!-- 手动映射结果集 --> <resultMap type="cn.tedu.mybatis.beans.User" id="userRM"> <!-- 主键列必须声明,且应使用id标签声明 --> <id column="uid" property="id"/> <!-- 对于非主键列,如果列名和bean的属性名相同,则不必配置 --> <!-- <result column="name" property="name"/> --> <result column="uage" property="age"/> </resultMap> <select id="queryByMapping" resultMap="userRM"> select id as uid,name,age as uage from user; </select>
resultMap="userRM" :用来将映射和查询操作联系起来
配置 id 的映射时用 id 标签
配置其它便签时用 result 标签
测试类:
// 根据配置文件创建sqlSessionFactory private SqlSessionFactory factory = null; @Before public void before() throws Exception{ //1.读取MyBatis核心配置文件 InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml"); //2.根据配置文件创建sqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); } /** * 手动映射结果集 */ @Test public void test12(){ // 1.创建SqlSession SqlSession session = factory.openSession(); // 2.执行操作 List<User> list = session.selectList("cn.tedu.mybatis.beans.UserMapper.queryByMapping"); // 3.打印结果 System.out.println(list); }