关于数据库的问题

关于数据库的问题

老师 您好 employee中已经有department_sn这一列了  也创建了外键  为什么还有再加一个dsn呢?

正在回答 回答被采纳积分+1

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

2回答
芝芝兰兰 2019-06-12 18:08:50

同学你好。resultMap的作用是将多张表联合查询的结果集中的字段,自动对应到对应的实体(包括主实体和其中嵌套的关联实体)中:

<!--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>

所以如下代码组装了一个id为employee的resultMap,它对应的实体类型是Employee。Employee中有一个声明为Department的属性department。所以使用<association>将Department类关联过来,关联的部分有二,一是Department的主键对应的属性sn,在结果集中对应的列名为dsn。二是Department的属性name对应的结果集中的列名dname。

<resultMap id="employee" type="Employee">
    <id property="sn" column="sn" javaType="String"/>
    <result property="password" column="password" javaType="String"/>
    <result property="name" column="name" javaType="String"/>
    <result property="departmentSn" column="department_sn" javaType="String"/>
    <result property="post" column="post" javaType="String"/>
    <association property="department" column="department_sn" javaType="Department" >
        <id property="sn" column="dsn" javaType="String"/>
        <result property="name" column="dname" javaType="String"/>
    </association>
</resultMap>

如果解答了同学的疑问,望采纳~

祝学习愉快~



好帮手慕阿莹 2019-04-09 19:01:44

department_sn是数据库中对应employee实体类中department属性,

也就是说,这里应该是一个Department类型的对象,但是数据库中对应的是department_sn

那么 ,我们应该通过外键,去查出这个Department类型的对象,这里的dsn是为了与sql语句中的其的别名一致。

如果你在建表的时候,employee表和department表的字段名没有相同的,那么association里面可以没有其他标签,也就是dname和name不用配置了

如果两个表的字段有相同的名字,就把对应的column改一个名字

注意看下面的查询,这个地方保持一致就可以了

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

这里其实对应的是字段的别名。

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


  • 老师,请问 dsn是与sql语句的别名对应住了,但是dsn怎么与关联的department的sn字段名对应呢,因为department没有dsn这字段呀?
    2019-06-12 16:58:16
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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