关于resultMap column命名
老师,视频里说当两张表命名一样时才需要将两张表的字段都罗列,意思是department表里对应的字段是sn和name,name在这里给他们加上前缀‘d’,不会出问题吗,比如跟数据表里关联不上之类的?
66
收起
正在回答
1回答
同学你好。你的想法是对的,就是因为结果集要展示两张表的相同名称的字段,需要区分一下。
我们组装这个resultMap是为了一次性将Employee对象的属性,包括关联的Department属性,通过一次关联查询映射到位,我们要做的查询语句是这样的:
1、这里的column对应的并不是真正的表中的列名,而是查询出的结果集的列名。例如上面的查询sql中有“d.sn dsn, d.name dname”
使用<association>将Department类关联过来,关联的部分有二,一是Department的主键对应的属性sn,在结果集中对应的列名为dsn。二是Department的属性name对应的结果集中的列名dname。
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>
如果解答了同学的疑问,望采纳~
祝学习愉快~
4. SSM到Spring Boot入门与综合实战
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星