zoukankan      html  css  js  c++  java
  • Mybatis配置详解

    Mytatis 配置详解

    • mybatis.check-config-location : java.lang.Boolean , 默认false

      是否执行MyBatis xml配置文件的状态检查, 只是检查状态

    • mybatis.config-location : java.lang.String

      mybatis-config.xml文件的位置

    • mybatis.configuration-properties : java.util.Properties

      mybatis 配置的扩展属性,配置在这里

      mybatis.configuration-properties.ext1=123
      mybatis.configuration-properties.ext2=abc
      
    • mybatis.type-aliases-package : java.lang.String

      使用别名的路径 , 针对的是pojo , 也可以是工具类

    • mybatis.type-aliases-super-type : java.lang.Class<?>

      指定alias类的父类 .

      当没有指定父类时 , 那么 type-aliases-package下的所有类都会指定别名 .

      当指定父类后 , type-aliases-package 下的指定父类的子类 ,才会加载别名 .

    • mybatis.type-handlers-package : java.lang.String

      类型转换器的路径包名. 加载类型转换器. javaType 与 JdbcType互转 .

    • mybatis.lazy-initialization : java.lang.Boolean

      懒初始化 , mybatis 会为每个mapper 生成一个bean , 那么对于这些bean是否需要延迟初始化. 延迟初始化会有多线程问题 , 慎用 , 默认的false就OK.

      true : 启用 , false : 禁用 , 默认false

    • mybatis.executor-type : org.apache.ibatis.session.ExecutorType

      指定以何种方式执行 SqlSessionTemplate . 有三种模式

      • simple(默认) : 为每个语句的执行创建一个新的预处理语句,单条提交sql .每执行一次update或select,就开启一个Statement对象,用完立刻关闭Statement对象。(可以是Statement或PrepareStatement对象)
      • reuse : 执行update或select,以sql作为key查找Statement对象,存在就使用,不存在就创建,用完后,不关闭Statement对象,而是放置于Map<String, Statement>内,供下一次使用。(可以是Statement或PrepareStatement对象)
      • batch : 重复使用已经预处理的语句. 执行update(没有select,JDBC批处理不支持select),将所有sql都添加到批处理中(addBatch()),等待统一执行(executeBatch()),它缓存了多个Statement对象,每个Statement对象都是addBatch()完毕后,等待逐一执行executeBatch()批处理的
    • mybatis.configuration.lazy-loading-enabled: java.lang.Boolean

      全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,association指的就是一对一,collection指的就是一对多查询。

      true: 启用 , false : 禁用 , 默认禁用

    • mybatis.configuration.aggressive-lazy-loading : java.lang.Boolean

      设置延迟加载的所有属性 是 全部加载 , 还是按需加载.
      true: 全部加载 , false , 按需加载, 默认false

    • mybatis.configuration.lazy-load-trigger-methods : java.util.Set<java.lang.String>

      懒加载属性的触发条件, 当执行指定方法时,触发延迟加载 .
      默认是: "equals", "clone", "hashCode", "toString"

    • configuration.log-impl: Class<? extends Log>

      输出日志的实现类 , 支持 6 种日志模式 . 默认依次使用以下顺序.

        tryImplementation(LogFactory::useSlf4jLogging);
        tryImplementation(LogFactory::useCommonsLogging);
        tryImplementation(LogFactory::useLog4J2Logging);
        tryImplementation(LogFactory::useLog4JLogging);
        tryImplementation(LogFactory::useJdkLogging);
        tryImplementation(LogFactory::useNoLogging);
      
    • mybatis.configuration.log-prefix: java.lang.String

      指定日志输出的前缀

    • mybatis.configuration.interceptors:java.util.List<org.apache.ibatis.plugin.Interceptor>

      拦截器 , 可以对执行sql做自定义处理 . 也可以阻止执行sql .

    • mybatis.configuration.jdbc-type-for-null : org.apache.ibatis.type.JdbcType

      当写入 null 值的字段时 , 部分数据库需要指定null的数据类型 . mysql不用设置 . oracle需要设置 .

    • mybatis.configuration.cache-enabled : java.lang.Boolean

      是否启用缓存 , 默认 true (启用缓存) . 这里是一级缓存 .

    • mybatis.configuration.caches : java.util.Collection<org.apache.ibatis.cache.Cache>

      缓存方案 , 已提供如下缓存方案 . 缓存的装饰器 . 也可以自定义缓存,实现Cache接口 .

        BlockingCache
        FifoCache
        LoggingCache
        LruCache
        ScheduledCache
        SerializedCache
        SoftCache
        SynchronizedCache
        TransactionalCache
        WeakCache
      

      ※: 这里配置没有效果 , 需要在mapper.xml文件里配置 .

    • mybatis.configuration.cache-names : java.util.Collection<java.lang.String>

      所有缓存的namespace .
      ※: 这里配置没有效果 . 应该是已经废弃了

    • mybatis.configuration.local-cache-scope : org.apache.ibatis.session.LocalCacheScope

      本地缓存的有效范围, 支持 SESSION,STATEMENT .

      • SESSION : 一个sqlsession中有效.
      • STATEMENT: 针对单独的sql有效. 可以在不同session中
    • mybatis.configuration.auto-mapping-behavior : org.apache.ibatis.session.AutoMappingBehavior

      自动匹配属性字段的动作, 支持三种方式:

      • NONE : 不自动匹配
      • PARTIAL (默认) : 会自动匹配字段 , 但内嵌字段 / 多层级复杂字段属性不匹配
      • FULL : 会自动匹配字段 , 内嵌字段 / 多层级复杂字段属性也会匹配 . 但性能不佳 , 从实用角度来说 . 不会有这么复杂的sql查询结果.
    • mybatis.configuration.auto-mapping-unknown-column-behavior : org.apache.ibatis.session.AutoMappingUnknownColumnBehavior

      没有匹配的属性字段时,要怎么处理的动作 , 有以下三种方式:

      • NONE : 不处理 , 跳过.
      • WARNING : 日志打出 警告信息 .
      • FAILING : 抛出异常信息 , SqlSessionException
    • mybatis.configuration.call-setters-on-nulls : java.lang.Boolean

      null , 空值时, 是否调用setter方法 , 默认false 不调用 .

    • mybatis.configuration.environment : org.apache.ibatis.mapping.Environment

      环境标识, 可以做环境隔离,和环境区分. 不同环境设置不同的事务工厂和不同的数据源

  • 相关阅读:
    INSPIRED启示录 读书笔记
    PHP反射类的理解(代码篇)
    PHP之实现双向链表(代码篇)
    单点登录 SSO 的实现原理 SESSION COOKIE Memcache
    Linux里如何查找文件内容
    PHP获取数组长度的方法 函数参数的比较
    爬虫经验总结
    认证 协议 JWT OAuth Session Cookie
    PHP统计所有字符在字符串中出现的次数
    Nginx 源码安装和调优
  • 原文地址:https://www.cnblogs.com/ElEGenT/p/12144011.html
Copyright © 2011-2022 走看看