在MyBatis中,可以通過配置來實現懶加載。在映射文件中使用lazyLoadingEnabled
來配置是否啟用懶加載,以及使用select
元素的fetchType="lazy"
屬性來指定延遲加載的方式。
具體實現步驟如下:
<settings>
<setting name="lazyLoadingEnabled" value="true"/>
</settings>
<select id="selectUserById" fetchType="lazy" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
ResultContext
的fetchNextPage()
方法或者調用實體類的延遲加載屬性來觸發,例如:SqlSession session = sqlSessionFactory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.selectUserById(1);
// 手動觸發延遲加載
user.getOrders();
這樣就能夠實現在需要時延遲加載數據,提高性能和減少資源消耗。