MyBatis配置文件(二)--settings配置


settings是MyBatis中最復雜的配置,它能影響MyBatis底層的運行,大部分情況下使用默認值,只需要修改一些常用的規則即可。常用規則有自動映射、駝峰命名映射、級聯規則、是否啟動緩存、執行器類型等。

所有配置可參考MyBatis官方文檔:http://www.mybatis.org/mybatis-3/configuration.html#settings

本文列出重要的幾個配置項及意義,並挑幾個常用配置加以說明:

 1 <!--設置 -->
 2     <settings>
 3         <!--緩存配置的全局開關:如果這里設置成false,那么即便在映射器中配置開啟也無濟於事 -->
 4         <setting name="cacheEnabled" value="true" />
 5         <!--延時加載的全局開關 -->
 6         <setting name="lazyLoadingEnabled" value="false" />
 7         <!-- 是否允許單一語句返回多結果集 -->
 8         <setting name="multipleResultSetsEnabled" value="true" />
 9         <!-- 使用列標簽代替列名,需要兼容驅動 -->
10         <setting name="useColumnLabel" value="true" />
11         <!-- 允許JDBC自動生成主鍵,需要驅動兼容。如果設置為true,則這個設置強制使用自動生成主鍵,盡管一些驅動不能兼容但仍能正常工作 -->
12         <setting name="useGeneratedKeys" value="false" />
13         <!-- 指定MyBatis該如何自動映射列到字段或屬性:NONE表示取消自動映射;PARTIAL表示只會自動映射,沒有定義嵌套結果集和映射結果集;FULL會自動映射任意復雜的結果集,無論是否嵌套 -->
14         <setting name="autoMappingBehavior" value="PARTIAL" />
15         <!-- 配置默認的執行器:SIMPLE是普通的執行器;REUSE會重用預處理語句;BATCH會重用語句並執行批量更新 -->
16         <setting name="defaultExecutorType" value="SIMPLE" />
17         <!--設置超時時間:它決定驅動等待數據庫響應的秒數,任何正整數-->
18         <setting name="defaultStatementTimeout" value="25"/>
19         <!--設置數據庫驅動程序默認返回的條數限制,此參數可以重新設置,任何正整數 -->
20         <setting name="defaultFetchSize" value="100" />
21         <!-- 允許在嵌套語句中使用分頁(RowBounds) -->
22         <setting name="safeRowBoundsEnabled" value="false" />
23         <!-- 是否開啟自動駝峰命名規則,即從a_example到aExample的映射 -->
24         <setting name="mapUnderscoreToCamelCase" value="true" />
25         <!-- 本地緩存機制,防止循環引用和加速重復嵌套循環 -->
26         <setting name="localCacheScope" value="SESSION" />
27         <!-- 當沒有為參數提供特定JDBC類型時,為空值指定JDBC類型。某些驅動需要指定列的JDBC類型,多數情況直接用一般類型即可,如NULL/VARCHAR/OTHER -->
28         <setting name="jdbcTypeForNull" value="OTHER" />
29         <!-- 指定觸發延遲加載的方法,如equals/clone/hashCode/toString -->
30         <setting name="lazyLoadTriggerMethods" value="equals" />
31     </settings>

我目前使用的最有用的配置就是mapUnderscoreToCamelCase這個,我的數據庫字段的命名格式是test_example這種,對應的pojo對象中屬性的命名是駝峰式,如果這個屬性用默認值false,就會發現需要在sql語句中進行轉換,如果我的數據庫表中有三個字段分別是user_id,user_name,user_age,那我查詢所有信息的時候不能這樣👇

SELECT * FROM user

而是要將每個字段都轉換成駝峰式,像這樣👇

SELECT user_id as userId,user_name as userName,user_age as userAge FROM user

想象一下,如果我的表中有十幾個字段,那我查詢所的時候就需要一個個進行轉換,太麻煩了,但是如果把這個配置設置成true,就完全不用這么麻煩了。

其他的目前還沒遇到,等遇到了再補充吧,以上就是settings配置。


免責聲明!

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



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