MyBatis——resultMap

resultMap元素是告诉MyBatis将从结果集中取出的数据转换为开发者所需要的对象。

例如以下实例,其返回值为Map集合(使用列名作key,列值作value):

参考:https://www.cnblogs.com/it-mh/articles/10649195.html

/MyBatis/src/com/web/mybatis/mapper/UserMapper.xml

<select id="selectUserMap" resultType="map">
        SELECT * FROM tb_user
</select>

/MyBatis/src/com/web/mybatis/test/SelectMapTest.java

package com.web.mybatis.test;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;

import com.web.mybatis.factory.FKSqlSessionFactory;

public class SelectMapTest {
    
    public static void SelectMapTest() {
        //获得Session实例
        SqlSession session = FKSqlSessionFactory.getSqlSession();
        //查询User对象
        List<Map<String,Object>> list = session.selectList("com.web.mybatis.mapper.UserMapper.selectUserMap");
        for(Map<String,Object> row : list) {
            System.out.println(row);
        }
        //提交事务
        session.commit();
        //关闭Session
        session.close();
    }
    
    public static void main(String[] args) {
        SelectMapTest();
    }

}

 

当查询到是数据的列与对象属性名称不一致时,需要使用requestMap进行属性与列的映射

数据库表:

CREATE TABLE tb_user2(
   user_id INT PRIMARY KEY,
   user_name VARCHAR(18),
   user_sex VARCHAR(18),
   user_age INT
)

跟User进行映射:

    <!-- 映射数据库表字段与对象属性 -->
    <resultMap id="userResultMap" type="com.web.mybatis.domain.User">
        <id property="id" column="user_id"/>
        <result property="name" column="user_name"/>
        <result property="sex" column="user_sex"/>
        <result property="age" column="user_age"/>
    </resultMap>
    <!-- 查询出的结果会与对象属性匹配赋值 resultMap属性值为resultMap元素id值 -->
    <select id="selectUser2" resultMap="userResultMap">
        SELECT * FROM tb_user2
    </select>

 测试代码:

    public static void SelectMapTest2() {
        //获得Session实例
        SqlSession session = FKSqlSessionFactory.getSqlSession();
        //查询User对象
        List<User> list = session.selectList("com.web.mybatis.mapper.UserMapper.selectUser2");
        for(User row : list) {
            System.out.println(row.toString());
        }
        //提交事务
        session.commit();
        //关闭Session
        session.close();
    }

 

posted @ 2019-04-04 14:39  !O0O!  阅读(362)  评论(0)    收藏  举报