8_3_总结

resultMap中的常见属性

属性描述
property需要映射到JavaBean 的属性名称。

javaType

property的类型,一个完整的类名,或者是一个类型别名。如果你匹配的是一个JavaBean,那MyBatis 通常会自行检测到。
column数据表的列名或者列别名。
jdbcTypecolumn在数据库表中的类型。这个属性只在insert,update   或delete 的时候针对允许空的列有用。JDBC 需要这项,但MyBatis 不需要。
typeHandler使用这个属性可以覆写类型处理器,实现javaType、jdbcType之间的相互转换。一般可以省略,会探测到使用的什么类型的typeHandler进行处理
fetchType自动延迟加载
selectassociation、collection的属性,使用哪个查询查询属性的值,要求指定namespace+id的全名称
ofTypecollection的属性,指明集合中元素的类型(即泛型类型)

级联查询和多表查询的比较及其选择

级联查询多表查询
SQL语句数量多条性能高
性能性能低性能高
延迟加载立即加载、延迟加载只有立即加载
灵活性        更灵活不灵活
SQL难易度简单复杂
选择依据简单、灵活高性能

ResultType和ResultMap使用场景

1)     如果你做的是单表的查询并且封装的实体和数据库的字段一一对应   resultType

2)     如果实体封装的属性和数据库的字段不一致  resultMap

3)      使用N+1级联查询的时候  resultMap

4)     使用的是多表的连接查询  resultMap

一对一关联映射的实现

1)     实例:学生和学生证、雇员和工牌

2)     数据库层次:主键关联或者外键关联(参看之前内容)

3)      MyBatis层次:在映射文件的设置双方均使用association即可,用法相同

多对多映射的实现

1)     实例:学生和课程、用户和角色

2)      数据库层次:引入一个中间表将一个多对多转为两个一对多

3)      MyBatis层次

方法1:在映射文件的设置双方均使用collection即可,不用引入中间类

方法2:引入中间类和中间类的映射文件,按照两个一对多处理

自关联映射

1)     实例:Emp表中的员工和上级。一般是一对多关联

2)     数据库层次:外键参考当前表的主键(比如mgr参考empno)

3)    MyBatis层次:按照一对多处理,但是增加的属性都写到一个实体类中,增加的映射也都写到一个映射文件中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值