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

    環境標識, 可以做環境隔離,和環境區分. 不同環境設置不同的事務工廠和不同的數據源


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM