mybatis 理解 1、2級快取,,懶載入
mybatis
1. 根據 JDBC 規範 建立與資料庫的連線。
2. 通過反射打通Java物件和資料庫引數和返回值之間相互轉化的關係。
lazyLoadingEnabled 全域性性設定懶載入。
如果設為false,則所有相關聯的都會被初始化載入 true時,按需載入 預設false
aggressiveLazyLoading(積極載入) 當設定為true的時候,
懶載入的物件可能被任何懶屬性全部載入,false時每個屬性都按需載入。預設是true
<settings>
<!-- 開啟延遲載入 的開關 -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 將積極載入改為消極載入即按需要載入 -->
<setting name="aggressiveLazyLoading" value="false"/>
<!-- 開啟二級快取 -->
<!-- <setting name="cacheEnabled" value="true"/>-->
</settings>
<association property="user" javaType="com.po.User"
select="com.po.mapper.UserMapper.findUserById"
column="user_id">
<!-- 實現對使用者資訊進行延遲載入 -->
</association>
<property name="configurationProperties">
<props>
<!-- mapUnderscoreToCamelCase屬性將表中列名的下劃線對映為JavaBean屬性的駝峰式命名,預設為false -->
<prop key="mapUnderscoreToCamelCase">true</prop>
</props>
</property>
<!-- 開啟二級快取 -->
<setting name="cacheEnabled" value="true"/>
一級快取是SqlSession級別的快取。
二級快取是mapper級別的快取,
一個mapper可以被多個sqlSession用
service中的sqlSession,commit之後,快取就會被清空