通过Mybatis实现关联查询的一个mapper范例

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--保留一个空的映射文件 ,满足mybatis的要求  -->
<mapper namespace="com.jt.order.mapper.OrderMapper">
	
	<!--万能转义表达式 可以转义任意字符
		<![CDATA[XXXXXXXXXXXXXXXXX]]>
		将超时的订单状态修改6 
	  -->
	<update id="updateStatusByDate">
		update tb_order set status = 6 where created &lt; #{time} and status = 1
	</update>
	
	
	<!--通过orderId实现数据关联查询  -->
	<select id="findOrderById" resultMap="orderRM">
		<!--查询order表数据  -->
		select * from tb_order where order_id = #{orderId}
	</select>
	
	<!--
		属性分析 
			type: 返回的数据类型
			id:   唯一标识resultMap 方便被别人调用
			autoMapping: 能够将数据表中的全部字段映射到全部属性中
			能够实现自动的映射 user_id =  userId	
			该属性添加肯定不错
	 -->
	<resultMap type="Order" id="orderRM" autoMapping="true">
		<!--进行关联封装时 必须先封装主键 -->
		<id column="order_id" property="orderId"></id>
		
		<!--由于需要关联映射 需要为orderShipping赋值
			一对一封装orderShipping
			association 表示一对一封装 表示一个对象 
			property="orderShipping
			Order对象中的属性 orderShipping,为对象进行赋值
			
			javaType="封装对象的数据类型"
			与一对一映射标签  association 是固定搭配
			column:表示order对象的主键信息.用来实现关联查询的
		  -->
		<association property="orderShipping" javaType="OrderShipping" 
		column="order_id"  select="findOrderShipping"/>
		
		<!--封装orderItemList集合
			集合封装时采用 collection标签  数据类型采用 ofType是固定搭配
		  -->
		<collection property="orderItems" ofType="OrderItem"
		column="order_id" select="findOrderItems"/>	
	</resultMap>
	
	<!--根据orderId实现查询OrderShipping  -->
	<select id="findOrderShipping" resultType="OrderShipping">
		select * from tb_order_shipping where order_id = #{orderId}
	</select>
	
	<!--根据orderId查询orderItem  -->
	<select id="findOrderItems" resultType="OrderItem">
		select * from tb_order_item where order_id = #{orderId}
	</select>
	
	
	<!-- 
		采用resultMap的方式可以封装单表数据
	<resultMap type="OrderShipping" id="orderShippingRM" autoMapping="true">
		<id column="order_id" property="orderId"/>	
		由于添加了 autoMapping=true 剩余的属性会自动的映射
	</resultMap> -->
	
</mapper>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值