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之后,缓存就会被清空