MyBatis两张表中存在相同字段名,联表查询时的冲突解决办法

1. 经常使用类似left join做查询,偶尔遇到两张表的字段名相同(即column名字一致),此时可以在mybatis中这样配置

例子:

    <select id="demo" resultMap="DemoResultMap">
        SELECT DISTINCT
               t1.username,
               t1.password,

               t2.username "t2_username",
               t2.age
          FROM table1 t1
          LEFT JOIN table2 t2
            ON t1.id = t2.id
         WHERE t1.age = #{age,jdbcType=VARCHAR}
    </select>
    <resultMap id="DemoResultMap" type="com.demo.vo.UserVo" >
        <id column="id"  property="id" jdbcType="VARCHAR"/>
        <result column="username" property="username" jdbcType="VARCHAR"/>
        <result column="password" property="password" jdbcType="VARCHAR"/>
        
        <result column="t2_username" property="t2Username" jdbcType="VARCHAR"/>
        <result column="age"  property="age" jdbcType="VARCHAR"/>
    </resultMap>
table1表和table2表都包含一个username字段,但实体中字段名是不同的,当联表查询时,可以起一个别名t2_username做转换,然后通过实体接收即可。


参考:

https://www.cnblogs.com/hupi/p/5656742.html


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值