学习笔记——MyBatis自动映射与自定义映射;Mybatis延迟加载 ...

打印 上一主题 下一主题

主题 656|帖子 656|积分 1968

2023-01-10
 一、MyBatis自动映射与自定义映射
1、自动映射:
在映射文件中使用的是“resultType”。指的是自动将数据库中表的字段与类中的属性进行关联映射。
2、自定义映射:
(1)在映射文件中使用的是“resultMap”。一般是自动映射解决不了的问题,就使用自定义映射。
有“多表连接查询,需要返回多张表的结果集”、以及“单表查询时,不支持驼峰式自动映射(这时一般使用别名)”
例如:在映射文件中的实例代码,之后在中设置为“resultMap”
  1.     <resultMap id="empAndDeptResultMap" type="employee">
  2.         <id column="id" property="id"></id>
  3.         <result column="last_name" property="lastName"></result>
  4.         <result column="email" property="email"></result>
  5.         <result column="salary" property="salary"></result>
  6.         <result column="dept_id" property="dept.deptId"></result>
  7.         <result column="dept_name" property="dept.deptName"></result>
  8.     </resultMap>
复制代码
(2)association
  1.     <resultMap id="empAndDeptResultMap" type="employee">
  2.         <id column="id" property="id"></id>
  3.         <result column="last_name" property="lastName"></result>
  4.         <result column="email" property="email"></result>
  5.         <result column="salary" property="salary"></result>
  6.         <result column="dept_id" property="dept.deptId"></result>
  7.         <result column="dept_name" property="dept.deptName"></result>
  8.     </resultMap>    <settings>
  9.         <setting name="mapUnderscoreToCamelCase" value="true"/>
  10.         <setting name="lazyLoadingEnabled" value="true"/>
  11.         <setting name="aggressiveLazyLoading" value="false"/>
  12.     </settings>
复制代码
(3)分步查询
使用多表连接查询,改为“分步单表查询”,从而提高程序运行效率
3、注意:自动映射(resultType)与自定义映射(resultMap)只能同时使用一个。
二、Mybatis延迟加载
即需要时加载,不需要时暂时不加载
好处是:能提升程序运行效率
延迟加载在“mybatis-config.xml”中的设置
  1.     <settings>
  2.         <setting name="mapUnderscoreToCamelCase" value="true"/>
  3.         <setting name="lazyLoadingEnabled" value="true"/>
  4.         <setting name="aggressiveLazyLoading" value="false"/>
  5.     </settings>
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表