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内,供下一次使用。(可以是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

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

  • configuration.log-impl: Class

    输出日志的实现类 , 支持 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

    拦截器 , 可以对执行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

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

      BlockingCache
      FifoCache
      LoggingCache
      LruCache
      ScheduledCache
      SerializedCache
      SoftCache
      SynchronizedCache
      TransactionalCache
      WeakCache

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

  • mybatis.configuration.cache-names : java.util.Collection

    所有缓存的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

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

你可能感兴趣的:(Mybatis配置详解)