Mybatis中resultMap标签解释

    xiaoxiao2022-07-13  137

    表单:

    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>

     

    最新回复(0)