<association column="department_sn">

<association column="department_sn">

http://img1.sycdn.imooc.com//climg/5e4b963009d1a88319201080.jpg

association的column,department_sn,指的是是emploee表里的字段还是department表里的字段。因为两个表都有这个字段,有点混淆。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,1、resultMap里的column对应是查询出的结果集的列名,就是通过sql语句查询出来的列名。

    2、column的意义不仅是在association中这这样的含义,在其余的标签中,也是这样的意义。

    3、结果集是通过sql语句得到的列表,例如:

http://img1.sycdn.imooc.com//climg/5e4cf0bb095f986807340314.jpg

    4、同学的理解是正确的,department_sn是employee表的外键,这个外键对应了department表的主键。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕小班 2020-02-18 16:53:39

同学你好,这个resultMap是为了一次性将Employee对象的属性,包括关联的Department属性,通过一次关联查询映射到位,我们要做的查询语句是这样的:

http://img1.sycdn.imooc.com//climg/5e4ba4530997903a10790141.jpg

    1、这里的column对应的并不是真正的表中的列名,而是查询出的结果集的列名。例如上面的查询sql中有“d.sn dsn, d.name dname”

http://img1.sycdn.imooc.com//climg/5e4ba4b30918384b09780148.jpg

    2、因为我们要做联表查询,要在同一个结果集中展现e表的sn和d表的sn。为了区分,才将它设置的不同。

    3、resultMap的作用是将多张表联合查询的结果集中的字段,自动对应到对应的实体(包括主实体和其中嵌套的关联实体)中,其中association标签是用来指明关联的类以及需要自动填充进入的字段的

<!--column对应的是结果集的列名,不是原表的。property是对应实体的属性名。-->
<resultMap id="唯一的标识" type="映射的对象类型">
  <id column="主表的主键列名" jdbcType="字段类型" property="映射对象的主键属性" />
  <result column="主表的对应属性列名" jdbcType="字段类型" property="映射对象的属性"/>
  <association property="主对象中存储关联对象的属性名" javaType="关联的实体对象类型">
    <id column="关联表的主键对应的结果集中的列名" jdbcType="字段类型" property="关联对象的主键属性"/>
    <result  column="关联表的属性对应的结果集中的列名" jdbcType="字段类型" property="关联对象的属性"/>
  </association>
</resultMap>

如上内容,association 中的department_sn就是需要连接的外键的属性,也就是employee中的外键。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 基度山伯爵_岩 #1
    老师,是整个resultMap里的column对应的并不是真正的表中的列名,而是查询出的结果集的列名?还是只有association标签下的column才是这样?结果集是什么?association 中的department_sn是employee表的外键,这个外键对应了department表的主键?
    2020-02-19 11:32:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师