Mybatis之resultMap



用resultMap显示连接查询,用户表和角色表连接查询

 

方式一:用resultMap显示查询结果,在实体中添加userRoleName属性

 

最大的好处:可以解决数据库和属性名一致问题

java spring中的resultmap的属性 resultmap property_嵌套

 

 

 

java spring中的resultmap的属性 resultmap property_ci_02

 

 

 

java spring中的resultmap的属性 resultmap property_ci_03

 

 

 

java spring中的resultmap的属性 resultmap property_嵌套_04

 

 

问题:在resultMap中没有映射地址,也可以显示地址

答:默认映射级别为partial, 若属性和数据库中的字段名称一致,则可以获取数据,反之不可

若不想实现自动匹配,修改mybatis-config中settings配置】

java spring中的resultmap的属性 resultmap property_嵌套_05

 

 

 

java spring中的resultmap的属性 resultmap property_数据库_06

 

区别:

 

 

java spring中的resultmap的属性 resultmap property_数据库_07

 

 

association: 映射到JavaBean的某个“复杂类型”属性,比如JavaBean类

复杂的类型关联,仅处理一对一

内部嵌套 :映射一个嵌套JavaBean属性

属性:

property:映射数据库列的实体对象的属性

javaType:完整Java类名或者别名

resultMap:引用外部resultMap

方式二: 删掉在User表中添加的userRoleName属性,而在User中添加Role实体对象

java spring中的resultmap的属性 resultmap property_嵌套_08

 

 

 

java spring中的resultmap的属性 resultmap property_数据库_09

 

 

 

java spring中的resultmap的属性 resultmap property_ci_10

 

 

 方式2:在association中使用resultMap引用,实现resultMap复用

java spring中的resultmap的属性 resultmap property_嵌套_11

 

 

 collection:映射到JavaBean的某个“复杂类型”属性,比如集合一对多

内部嵌套:映射一个嵌套结果集到一个列表

属性

property: 映射数据库列的实体对象的属性

ofType:  完整Java类名或者别名(集合所包括的类型)

resultMap:引用外部resultMap

在User对象中添加一个存储地址的集合

java spring中的resultmap的属性 resultmap property_ci_12

 

 

 

java spring中的resultmap的属性 resultmap property_ci_13

 

 

 

java spring中的resultmap的属性 resultmap property_数据库_14

 

 

或者

java spring中的resultmap的属性 resultmap property_ci_15

 

 

 resultMap映射级别:

PARTIAL:默认值,自动匹配所有的属性,有内部嵌套(association和collection)的除外

NONE :禁止自动匹配

FULL :自动匹配所有

 

 

 

 

 

 

association: 映射到JavaBean的某个“复杂类型”属性,比如JavaBean类