首页 > 其他分享 >学习笔记——MyBatis自动映射与自定义映射;Mybatis延迟加载

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

时间:2023-01-11 16:33:45浏览次数:31  
标签:映射 自定义 查询 自动 Mybatis 加载

2023-01-10

 一、MyBatis自动映射与自定义映射

1、自动映射:

在映射文件中使用的是“resultType”。指的是自动将数据库中表的字段与类中的属性进行关联映射。

2、自定义映射:

(1)在映射文件中使用的是“resultMap”。一般是自动映射解决不了的问题,就使用自定义映射。

有“多表连接查询,需要返回多张表的结果集”、以及“单表查询时,不支持驼峰式自动映射(这时一般使用别名)”

例如:在映射文件中的实例代码,之后在<select>中设置为“resultMap”

    <resultMap id="empAndDeptResultMap" type="employee">
<!--        定义主键-->
        <id column="id" property="id"></id>
<!--        定义非主键,column里面放置数据库中的字段,property中放置类中的属性-->
        <result column="last_name" property="lastName"></result>
        <result column="email" property="email"></result>
        <result column="salary" property="salary"></result>
        <result column="dept_id" property="dept.deptId"></result>
        <result column="dept_name" property="dept.deptName"></result>
    </resultMap>

(2)association

<resultMap id="selectEmplAndDeptByIdAssociation" type="employee">
        <!--        定义主键-->
        <id column="id" property="id"></id>
        <!--        定义非主键,column里面放置数据库中的字段,property中放置类中的属性-->
        <result column="last_name" property="lastName"></result>
        <result column="email" property="email"></result>
        <result column="salary" property="salary"></result>
        <association property="dept"
                     javaType="com.hh.mybatis.pojo.Dept">
            <result column="dept_id" property="deptId"></result>
            <result column="dept_name" property="deptName"></result>
        </association>

</resultMap>

(3)分步查询

使用多表连接查询,改为“分步单表查询”,从而提高程序运行效率

3、注意:自动映射(resultType)与自定义映射(resultMap)只能同时使用一个。

二、Mybatis延迟加载

即需要时加载,不需要时暂时不加载

好处是:能提升程序运行效率

延迟加载在“mybatis-config.xml”中<setting>的设置

    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
<!--        延迟加载-->
        <setting name="lazyLoadingEnabled" value="true"/>
<!--        延迟加载的属性-->
        <setting name="aggressiveLazyLoading" value="false"/>
    </settings>

 

标签:映射,自定义,查询,自动,Mybatis,加载
From: https://www.cnblogs.com/isDaHua/p/17041230.html

相关文章

  • 手机端H5 实现自定义拍照界面
    手机端H5实现自定义拍照界面也可以使用MediaDevicesAPI和<video>标签来实现,和在桌面端做法基本一致。首先,使用MediaDevices.getUserMedia()方法获取摄像头媒体流......
  • echarts tooltip的formatter自定义样式设置
    drawPieChart(res){letchart2Total=0constdrawerData=res.map(item=>{chart2Total=chart2Total+item.value......
  • ubuntu20.04 安装 samba 并配置 win10映射
    1、安装samba软件并配置开机自启动apt-getinstallsambasamba-commonsystemctlenablesmbd2、创建sumba主文件夹mkdir/opt/data/sambachmod-R777/opt/data/sa......
  • 自定义orm、CMDB资产管理系统
    1自定义ormhttps://www.cnblogs.com/liuqingzheng/article/9006025.html#了解orm底层原理2cmdb资产管理系统项目#CMDB资产管理系统就是服务器管理系统#......
  • SpringBoot+Mybatis-plus整合easyExcel批量导入Excel到数据库+导出Excel
    一、前言今天小编带大家一起整合一下easyExcel,之所以用这个,是因为easyExcel性能比较好,不会报OOM!市面上常见的导入导出Excel分为三种:hutooleasyExcelpoihutool和eas......
  • docker启动nginx,包含创建数据卷和端口映射
    首先先将nginx的配置文件进行获取,随便run一个nginx容器,将容器中的配置拷贝到linux中,代码如下: dockerrun-p80:80--namenginx-dnginx#没有镜像会自......
  • 从自定义的库函数到STM32官方标准库
      在​​上一节​​的基础上,进一步改写代码,再引入官方标注库函数。虽然官方标准库慢慢式微,有一些别的库可能会取代它,但是并不妨碍我们继续拿官方库来写代码,吸取里边好的写......
  • Mybatis——实现批量更新
    一、概述mybatis中实现批量插入是很简单的,相比大家都知道,这里就不赘述,本文主要讲述如何实现批量更新。 下面介绍本文要讲的几种方式主要是在xml中实现,不包含需要改动代......
  • Mybatis
    缓存与Executor一级缓存一级缓存是sqlSession级别的,默认开启,在BaseExecutor中实现,其具体实现为key-value结构的HashMap。一级缓存命中条件1、查询sql和参数值必须相同;......
  • Axure 自定义元件库
    点击文件->新建元件库可以添加多个元件,并将期重命名保存元件库新建页面添加元件,选择自建的元件库导入后就会发现我的原件库这样就可以使用我们自定义的元件......