mybatis

  1. 配置文件

    1. 核心配置文件如何连接数据库,映射文件如何操作数据库
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
      <configuration>
      //引入配置文件,比如druid的
      <properties resource="org/mybatis/example/config.properties"/>
       
      //别名
      <typeAliases>
        <package name="domain.blog"/>
      </typeAliases>
          
        <environments default="development">
          <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
              <property name="driver" value="${driver}"/>
              <property name="url" value="${url}"/>
              <property name="username" value="${username}"/>
              <property name="password" value="${password}"/>
            </dataSource>
          </environment>
        </environments>
      
          //映射文件和mapper接口在的文件一,否则会失效
        <mappers>
        <package name="org.mybatis.builder"/>
      </mappers>
      </configuration>
    2. 获取参数

      1. ${}和#{}

        1. ${}本质是字符串拼接,有sql注入问题
        2. #{}本质是占位符赋值;
      2. 单个自变量string,int,包装类

        1. 使用#{},传过来的值和变量无关
        2. 使用${},会直接拼接,而在sql中字符串是需要有单引号的
      3. 多个变量

        1. 比如说username,password
        2. 接收的参数有多个时,自动会放在map集合中,以param为key
        3. 访问时,可以使用的方式:

          1. 写mapper接口时加上@param注解
          2. 映射文件中#{param0}    #{param1}
          3. 参数是对象时,比如添加,修改;直接使用java的实体类
      4. 查询

        1. 单个查询

        2. 特殊的查询

          1. 模糊查询like

            1. 模糊查询包含在'  '中,#{mohu}在解析的时候会解析为?,是属于'  '中的一部分,不会占位。或者使用以下方式:
          2. 批量删除

          3. 动态设置表名

            1. #{}会自动加'  ',所以动态设置表名的时候只能使用${}
          4. 获取自增的主键

            1. jdbc中
            2. mybatis中
        3. 多对一的映射

          1. 级联
          2. association
          3. 分步查询
            1. 执行查询会先查主查询。在查子查询;

            2. 分步查询的优势可以实现延迟加载(懒加载)

            3. 延迟加载

            4. <settings>
                //懒加载和这两个属性有关
                <setting name="lazyLoadingEnabled"value="true"/>
                //按需记载
                <setting name="aggressiveLazyLoading" value="false"/>
              </settings>
              1. 因为setting是全局配置,当实现了延迟加载时,association中的 fetchType可以开启立即加载
      5. 缓存

        1. 一级缓存

          1. 一级缓存是sqlsession级别的,同一个查询,只会执行一次查询
        2. 二级缓存

          1. 操作
            缓存命中率,只有二级缓存
        3. 查询的顺序
      6. 分页插件

        1. 步骤

        2. 使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值