Mybatis xml文件一对一、一对多的写法

一、association 关键字标签:一对一全部放在一个reultMap里面

<resultMap type="com.residual.union.modular.sale.DTO.SaleSkuRecordItemDTO" id="saleRecordItemResultMap" autoMapping="true">
  	<id column="skuDetialId" jdbcType="BIGINT" property="skuDetialId" />
  	<association property="saleSkuRecordDetaiItemlDTO" javaType="com.residual.union.modular.sale.DTO.SaleSkuRecordDetaiItemlDTO" autoMapping="true">
  		<id column="skuDetialId" jdbcType="BIGINT" property="skuDetialId" />
  	</association>
  	<association property="saleSkuBuyerItemDTO" javaType="com.residual.union.modular.sale.DTO.SaleSkuBuyerItemDTO" autoMapping="true">
  		<id column="byuerId" jdbcType="BIGINT" property="byuerId" />
  	</association>
  	<association property="saleSkuSalerItemDTO" javaType="com.residual.union.modular.sale.DTO.SaleSkuSalerItemDTO" autoMapping="true">
  		<id column="sellerId" jdbcType="BIGINT" property="sellerId" />
  	</association>
  </resultMap>
  <select id="saleRecordItem" resultMap="saleRecordItemResultMap">
  	select 
  		u2.id as byuerId,
  		u.id as sellerId,
  		soi.order_no as orderNo,
  		soi.create_time as createTime,
		sod.id as skuDetialId,
		sod.sku_id as skuId,
		sod.sku_name as skuName,
		case when ssi.postage = '0' then '包邮' when ssi.postage = '1' then '不包邮' end postage,
		concat(CONVERT(sku_price,char),'元/',ssi.unit) as skuPrice,
		concat(CONVERT(sod.sku_qty,char),ssi.unit) as skuQty,
		concat(CONVERT(sod.sku_total_price,char),'元') as skuTotalPrice,
		dt.name as orderStatus,
		soi.create_time as createTime,
		soi.deliver_time deliverTime,
		soi.tracking_no as trackingNo,
		d.name as sellerNickname,
		d.phone as sellerPhone,
		d2.name as buyerName,
		d2.phone as buyerPhone,
		d2.address as buyerAddress,
		d2.age as sellerAge,
		d2.sex_name as sellerSex,
		d2.disabled_value as disabledValue,
		d2.disabled_type as disabledType,
		d2.disability_code as disabilityCode,
		d2.IDcard,
		d2.street,
		d2.community,
		concat(CONVERT((select count(1) from sale_sku_info ssi where ssi.seller = u.id),char),'件') as releaseNumber,
		concat(CONVERT((select count(1) 
			from sale_order_info soi2 
			left join sale_order_detail sod2 on soi2.order_no = sod2.sale_order_no  
			where soi2.user_id = u2.id and sod2.sku_id = sod.sku_id and soi2.pay_status = '3'),char),'次') as buyNumber
	from sale_order_info soi 
	left join sale_order_detail sod on soi.order_no = sod.sale_order_no
	left join sale_sku_info ssi on ssi.id = sod.sku_id
	left join dict dt on dt.val = soi.order_status and dt.pid = '2571'
	left join user u on soi.seller_id = u.id
	inner join authentication atn ON atn.id = u.authID AND atn.type = 2
	left join disabled d ON atn.idcard = d.disability_code
	left join user u2 on soi.user_id = u2.id
	left join authentication atn2 ON atn2.id = u2.authID AND atn2.type = 2
	left join disabled d2 ON atn2.idcard = d2.disability_code
  	
	where sod.id = #{skuDetialId}
  </select>

二、collection 关键字标签:一对多

<resultMap  id="userResumeResultMap" type="com.disable.zczj.modular.resume.pojo.ResumeInfoDTO" autoMapping="true">
 	 <id column="id" jdbcType="BIGINT" property="id" />
  	 <collection property="workExperienceList" ofType="com.disable.zczj.modular.resume.pojo.WorkExperienceItemDTO" autoMapping="true">
  	 	 <id column="workExperienceId" jdbcType="BIGINT" property="workExperienceId" />
  	 </collection>
  </resultMap>
  <select id="selectByUuserId" resultMap="userResumeResultMap">
  	SELECT
		u.id,
		u.icon as icon,
		u.user_id as userId,
		u.`name` as name,
		u.sex as sex,
		u.birthdate,
		u.phone as phone,
		u.disability_category as disabilityCategory,
		u.disability_desc AS disabilityDesc,
		u.disabled_value as disabledValue,
		u.job_status as jobStatus,
		u.introduction as introduction,
		u.education,
		u.skill,
		uwe.id as workExperienceId,
		uwe.start_time as startTime,
		uwe.end_time as endTime,
		uwe.position_name as positionName,
		uwe.company as company
	FROM
		`user_resume` u
	LEFT JOIN user_work_experience uwe ON u.id = uwe.user_resume_id
	WHERE u.user_id= #{userId} 
  </select>

三、放在一起通过标签 select 属性引用其他sql

<resultMap id="orderDetailDTO" type="com.hdsj.admin.modular.ser.pojo.OrderDetailDTO">
		<result column="order_code" property="orderCode" />
		<result column="unitPrice" property="unitPrice" />
		<result column="score" property="score" />
		<result column="duration" property="duration" />
		<result column="serviceMethodName" property="serviceMethodName" />
		<result column="price" property="price" />
		<result column="payMethodName" property="payMethodName" />
		<result column="reserve_time" property="reserveTime" />
		<result column="status" property="status" />
		<result column="orderRemark" property="remark" />
		<result column="serviceTime" property="serviceTime" />
		<result column="serviceEndTime" property="serviceEndTime" />
		<result column="startLongitude" property="startLongitude" />
		<result column="startLatitude" property="startLatitude" />
		<result column="endLongitude" property="endLongitude" />
		<result column="endLatitude" property="endLatitude" />
		<result column="phone" property="phone" />
		<result column="address" property="address" />
		<result column="serviceName" property="serviceName" />
		<result column="serviceTypeName" property="serviceTypeName" />
		<association column="waiterID" property="attendantDetail" select="com.hdsj.admin.mapper.UserMapper.getOrderAttendantDetailById" />
		<collection column="orderID" property="lifePics" select="com.hdsj.admin.mapper.OrderServiceMapper.getlifePicsByOrderID" />
	</resultMap>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值