mybatis 一对一 查询结果集

我们在mybatis 做关联的时候,需要放回两张表里面的字段,一般在sql中 对列名称取别名。那么有没有一种不用取别名的方式去做呢??

第一种使用mybatis的association标签代码如下

mapper.xml

<resultMap id="BaseResultRefMountMap" type="com.jollycorp.settle.dal.dto.TSettleCycleMountRefCycleDto">
    <id column="mount_no" jdbcType="BIGINT" property="mountNo" />
    <result column="member_id" jdbcType="VARCHAR" property="memberId" />
    <result column="member_name" jdbcType="VARCHAR" property="memberName" />
    .....
    <result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime" />
	<result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />	
	<association javaType="com.jollycorp.settle.dal.model.TSettleCycle" property="settleCycle">
		<id column="seq_no" jdbcType="INTEGER" property="seqNo" />
	    <result column="settle_cycle_no" jdbcType="VARCHAR" property="settleCycleNo" />
	    <result column="settle_cycle_name" jdbcType="VARCHAR" property="settleCycleName" />
	    <result column="settlement_mode" jdbcType="VARCHAR" property="settlementMode" />
.....
	    <result column="remark" jdbcType="VARCHAR" property="remark" />
	    <result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime" />
	    <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />	
	</association>    
  </resultMap>

pojo

package com.**.settle.dal.dto;

import java.math.BigDecimal;
import java.util.Date;

import com.**.settle.dal.model.TSettleCycle;
import com.**.settle.dal.model.TSettleCycleMount;

/**
 * 类职责:规则挂载表关联规则 结果对象<br/>
 *     
 * <p>Title: TSettleCycleMountRefCycle.java</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2017 浙江**信息技术有限公司</p>
 * <p>Company: 浙江**信息技术有限公司</p>
 *  
 * <p>Author:zcj</p>
 * <p>CreateTime:2019年1月21日上午10:27:02
 */
public class TSettleCycleMountRefCycleDto extends TSettleCycleMount{

	private static final long serialVersionUID = -6701352773589620485L;
	
	// 结算规则对象
	private TSettleCycle settleCycle;

	public TSettleCycle getSettleCycle() {
		return settleCycle;
	}

	public void setSettleCycle(TSettleCycle settleCycle) {
		this.settleCycle = settleCycle;
	}
}

querySQL

<select id="querySettlementOptionalByAccountNo" parameterType="com.jollycorp.settle.dal.model.TSettleCycleMount" resultMap="com.**.settle.dal.dto.TSettleCycleMountRefCycleDto">
	   select 
	   	sc.settlement_optional,
	   	sc.business_day,
	   	scm.settle_date,
	   	scm.next_settle_date,
	   	scm.time_zone,
	   	scm.mount_no,
	   	scm.calendar_code
	   from t_settle_cycle sc,
	   	 t_settle_cycle_mount scm
	   where scm.CYCLE_SEQ_NO = sc.seq_no
	   and scm.STATUS = #{status,jdbcType=INTEGER}
	   and scm.ACCOUNT_NO = #{accountNo,jdbcType=VARCHAR} limit 1
	 </select>

第二种开启mybaits驼峰的配置实现(mapUnderscoreToCamelCase)

spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/jcpay_settle?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
  spring.datasource.druid.filters=stat,log4j,config
  mybatis.configuration.mapUnderscoreToCamelCase=true

resultMap----->resultType 

pojo

package com.**.settle.dal.dto;

import java.math.BigDecimal;
import java.util.Date;

import com.**.settle.dal.model.TSettleCycle;
import com.**.settle.dal.model.TSettleCycleMount;

/**
 * 类职责:规则挂载表关联规则 结果对象<br/>
 *     
 * <p>Title: TSettleCycleMountRefCycle.java</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2017 浙江**信息技术有限公司</p>
 * <p>Company: 浙江**信息技术有限公司</p>
 *  
 * <p>Author:zcj</p>
 * <p>CreateTime:2019年1月21日上午10:27:02
 */
public class TSettleCycleMountRefCycleDto implements Serializable{

	/**
	 * 版本号
	 */
	private static final long serialVersionUID = -6701352773589620485L;
	
	private Integer settlementOptional;
	private Integer businessDay;
	private Date settleDate;
	private Date nextSettleDate;
	private String timeZone;
	private Long mountNo;
	private String calendarCode;
	private BigDecimal minimumSettlementAmount;
	
	public Integer getSettlementOptional() {
		return settlementOptional;
	}
	public void setSettlementOptional(Integer settlementOptional) {
		this.settlementOptional = settlementOptional;
	}
	public Integer getBusinessDay() {
		return businessDay;
	}
	public void setBusinessDay(Integer businessDay) {
		this.businessDay = businessDay;
	}
	public Date getSettleDate() {
		return settleDate;
	}
	public void setSettleDate(Date settleDate) {
		this.settleDate = settleDate;
	}
	public Date getNextSettleDate() {
		return nextSettleDate;
	}
	public void setNextSettleDate(Date nextSettleDate) {
		this.nextSettleDate = nextSettleDate;
	}
	public String getTimeZone() {
		return timeZone;
	}
	public void setTimeZone(String timeZone) {
		this.timeZone = timeZone;
	}
	public Long getMountNo() {
		return mountNo;
	}
	public void setMountNo(Long mountNo) {
		this.mountNo = mountNo;
	}
	public String getCalendarCode() {
		return calendarCode;
	}
	public void setCalendarCode(String calendarCode) {
		this.calendarCode = calendarCode;
	}
	public BigDecimal getMinimumSettlementAmount() {
		return minimumSettlementAmount;
	}
	public void setMinimumSettlementAmount(BigDecimal minimumSettlementAmount) {
		this.minimumSettlementAmount = minimumSettlementAmount;
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值