hooyantsing's Blog

第99次课程_Mybatis关联映射

字数统计: 298阅读时长: 1 min
2020/01/03

源辰76班

第99次课程

2020.01.03

内容

Mybatis关联映射[廖彦]

文件目录结构

43d7e1223280a4baf152447fd3bfd8bc.png

逻辑关联

dsBuffer-bmp.png

resultType/resultMap的区别

resultType是最基本,直接调用基本实体类(容器)来装数据。

resultMap更灵活,如果加入 字段名转变量名/一对一/一对多 功能,需要自定义(标签:),然后再通过id再引用这个定义。

1
2
3
4
5
6
7
8
9
10
<mapper  namespace="com.yc.mybatis.dao.CinemaMapper">
<resultMap  type="com.yc.mybatis.bean.Cinema"  id="rmCinema">
    <!-- 一对多 -->
    <collection property="halls" column="id"
    select="com.yc.mybatis.dao.HallMapper.selectByCinemaId"></collection>
</resultMap>
  <select id="selectById"  resultMap="rmCinema">
    select * from cinema where id = #{id}
  </select>
</mapper>

解决数据库字段与bean变量名不一致问题:result

**2db323852c194f56eda96595a8d224c9.png

**

数据库字段”hall_type” 转换 实体类变量”hallType”

一对一:association

3066ceb10c1fc220a2187b693e2aa4fb.png

从实体类变量”cinema_id”获取值,通过CinemaMapper.xml中定义的selectById,查询到对象,放入该实体类的变量(bean)”cinema”中。

一对多:collection

9f10476da1c4cfb49d88047d287972d6.png

从实体类变量”id”获取值,通过HallMapper.xml中定义的selectByCinemaId,查询到多个对象,放入该实体类的变量组(List)”cinema”中。

CATALOG