MyBatis结果集映射

MyBatis结果集映射在什么情况下使用?**
      当定义的实体类的属性名和数据库的列名不一致时,需要建立属性名和列名的映射关系,也就是mybatis的结果集映射。
使用xml配置文件操作

<resultMap type="返回类型" id="xxxMap" autoMapping="true">
        <!--主键一般使用标签id,不论实体类属性和数据库列名是否一致,都应该定义-->
        <id column="ID" property="ID"/>
        <!--实体类的属性名和列名不一致时-->
        <result column="name123" property="name"/>
        <!--实现(一对多)(多对一)的主要配置
            在执行当前sql语句是,根据该表中的共同拥有的列去查到另一张表的信息
            在该映射条件执行时,必须要有一个对应的接口,用来查询别一张表的方法
        -->
        <association property="属性值" column="相关联列名属性" select="接口类全路径.方法名"></association>
    </resultMap>
    <select id="接口中对应方法名" resultMap="xxxMap">
        SELECT * FROM GRADE
    </select>
</mapper>

使用注解完成一对多及多对一

public interface StudentMapper {
    /**
     *原理和上边一样,只不过是换种表式方式,更加简单,容易理解
     *注意如果有多个联系,需要用
     * @Results(
     *    {
     *     @Result(property="返回类型1",column="相关联的列名1",one=@one(select="接口1.方法名")),
     *     @Result(property="返回类型2",column="相关联的列名2",many=@Many(select="接口2.方法名"))
     *    }
     * )
     * 注意:one=@one 是表式一对一    many=@Many 是表示一对多
     */
    @Results(
            @Result(property="返回类型",column="关联的列名",many=@Many(select="接口.方法名"))
    )
    @Select("select * from student where sid=#{id}")
    public Student queryStudentBySid(Integer id);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值