Mybatis中resultMap标签解释
程序员文章站
2022-07-12 22:39:29
...
表单:
javaBean:
package com.pojo;
public class Product {
private String orderId;
private String product;
}
package com.domain;
import java.util.List;
public class Order {
private String userId;
private String orderId;
private List<Product> products;
}
resultMap标签解释案例:
<!--
要求:查询用户的订单信息(每个用户有多张订单,每张订单有多个商品)
步骤:
1.先从order表中根据user_id查出user_id
2.根据查出的user_id去product表中查出商品信息
-->
<!-- 标签解释: 此处的type是指Order类的类型。
由于mybatis的配置文件中使用了别名标签,所有包名可以省略,只写类名即可 -->
<resultMap type="Order" id="orderRM">
<!-- 标签解释: 此处的property是指Order中的属性, column是指order表格中的字段名。
查询结果主键对应关系 剩下交给驼峰命名封装-->
<id property="orderId" column="order_id" />
<!-- 标签解释: 此处的property是Order中的属性,由于products的类型是一个集合,所以此处采用<collection>标签
javaType是指products属性的类型,ofType是指products属性的泛型的类型,select是指定当前property属性
是调用哪个方法查出的结果,column是指定将order表中哪一列的值作为参数传给这个方法。
注:一对多时使用<collection>标签,多对一时使用<association>标签-->
<collection property="products" javaType="List"
ofType="Product" column="order_id" select="queryProduct"></collection>
</resultMap>
<select id="queryOrder" parameterType="String" resultMap="orderRM">
select * from order where user_id=#{userId};
</select>
<select id="queryProduct" parameterType="String" resultType="Product">
select * from product where order_id=#{orderId};
</select>
推荐阅读
-
Mybatis中强大的resultMap功能介绍
-
基于mybatis中
标签的作用说明 -
eclipse 的mybatis中mapper.xml文件标签没有提示的解决方法
-
Mybatis中resultMap标签解释
-
Mybatis的resultMap中各个标签解释
-
JavaWeb【Mybatis】动态标签与ResultMap标签
-
关于mybatis中resultType与resultMap的区别介绍
-
MyBatis中 <sql>标签和<include>标签
-
resultMap标签中里的collection标签详解
-
解决Mybatis中foreach嵌套使用if标签对象取值的问题