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(); }

浙公网安备 33010602011771号