Mybatis学习笔记

Mybatis

配置文件常用属性设置

  1. properties标签
(1)新建properties文件
(2)导入properties文件:
<properties resource="jdbc.properties"/>
  1. typeAliases标签

    标签格式:<typeAliases  type="需要设置别名的类" alias="别名"></typeAliases>
    
  2. settings标签

    全局配置标签,写法如下,下列写法为将数据库返回值映射为驼峰式命名
    <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
    

resultMap标签的使用

  1. id标签

    进行数据库唯一主键映射所使用的标签
    <id column="数据库中的主键属性名"  property="实体类对应的属性名"></id>
    
  2. result标签

    对与数据库常规属性映射到实体类对应属性的标签
    <result column="数据库中的属性名"  property="实体类对应的属性名"><result>
    
  3. 处理一对多映射(实体类中有其他实体类的映射)

    方法1:
    <resultMap id="resultMapId" type="映射到的实体类型"> 
    <association property="映射到的实体类中的属性" javatype="映射到的属性的实体类类型">
        使用id和result标签
        </association>
    </resultMap>
    
    方法2:(级联)
    <result column="数据库中的属性名"  property="实体类对应的属性名.对应的属性"><result>
        
    方法3:(分布查询)
        <resultMap>
        <assocaiation property="主实体类对应的实体类属性名"
                      select="第二步查询依赖的接口全类名.方法名"
                      column="第一步查询返回的作为条件的属性">
            </assocaiation>
        </resultMap>
        
    
    1. 延迟加载

      延迟加载在分步查询的基础上进行,需要在全局配置中配置相关
      <setting name="lazyLoadingEnabled" value="true"/>//全局延迟加载,开启后所有关联查询均失效
      <setting name="aggressiveLazyLoading" value="true"/>//选择性延迟加载,可自定义是否延迟加载:        
       <resultMap>
          <assocaiation property="主实体类对应的实体类属性名" facthtype="eager"
                        select="第二步查询依赖的接口全类名.方法名"
                        column="第一步查询返回的作为条件的属性">
              </assocaiation>
          </resultMap>
      <-- facthtype来决定是否延迟加载"eager"立即加载,"lazy"延迟加载 -->
      
    2. 一对多关系映射

      <colletion proprety="主实体类中的集合属性名" oftype="集合的泛型">
      标签中使用常规Id标签和result标签来进行映射
      </colletion>
      
    3. 动态sql

      (1).if标签

      <if test="判断语句">
      满足条件后的操作
      </if>
      

      (2).where标签

      where标签可将if判断满足条件后语句的前多余的and消除,但语句最后多余的无法截取掉
      <where>
      <if test="判断语句">
      满足条件后的操作
      </if>
      </where>
      

      (3)trim标签

      <trim prefix="set" suffixOverrides=","></trim>
      prefix属性:在语句前添加指定内容
      suffix属性:在语句后添加指定内容
      suffixOverrides属性:截取掉语句后的指定内容
      prefixOverrides属性:截取掉语句前的指定内容
      

      (4)choose,when.otherwise标签组

      <choose>
          <when test="判断语句">
          满足条件后执行的操作
          </when>
          <otherwise>//类似else作用,但只能存在一个
          </otherwise>
      </choose>
      

      (5)foreach标签

      <foreach collection="被循环的数组或集合" item="接收每次循环得到的内容" open="循环结果以什么开头" close="循环结果以什么结束">
      </foreach>
      

二级缓存

开启二级缓存

1.配置全局配置

<setting name= "cacheEnabled" value="true"></setting>

2.配置映射文件

<cache 
       eviction="FIFO"//缓存原则(FIFO先进先出)
       flushInterval="60000"//有效时间
       size="512"//缓存数据数量
       readonly="true"/>//权限为只读
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值