有口碑的常州网站建设西安seo按天收费
resultMap
是 MyBatis 框架中用于定义数据库结果集与 Java 对象之间映射关系的核心标签。它的主要作用是解决数据库字段名与 Java 对象属性名不一致的问题,或处理复杂查询(如关联查询、嵌套对象、集合映射等)时的映射需求。
主要用途:
-
字段名与属性名不一致
当数据库表的字段名(如user_name
)和 Java 对象的属性名(如userName
)不一致时,通过resultMap
可以显式指定映射关系。<resultMap id="userMap" type="User"><result property="userName" column="user_name"/><result property="age" column="user_age"/> </resultMap>
2.映射复杂对象
处理嵌套对象(如一对一、一对多关系)。例如:
一对一关联:使用 <association>
映射单个对象。
一对多关联:使用 <collection>
映射集合。
<resultMap id="orderMap" type="Order"><id property="id" column="order_id"/><result property="amount" column="order_amount"/><!-- 一对一关联 User 对象 --><association property="user" javaType="User"><result property="userName" column="user_name"/></association><!-- 一对多关联 OrderItem 集合 --><collection property="items" ofType="OrderItem"><result property="itemName" column="item_name"/></collection>
</resultMap>
示例场景:
假设数据库查询结果如下:
SELECT id AS user_id, name AS user_name, age AS user_age
FROM users
而 Java 对象为:
public class User {private Integer id;private String name;private Integer age;// getters/setters...
}
使用 resultMap
标签 解决字段名不匹配:
<resultMap id="userResultMap" type="User"><id property="id" column="user_id"/><result property="name" column="user_name"/><result property="age" column="user_age"/>
</resultMap><select id="selectUser" resultMap="userResultMap">SELECT * FROM users
</select>