MyBatis中可以通過使用延遲加載來解決性能問題,延遲加載是指在需要使用某個對象時才會去查詢數據庫獲取該對象的信息。在MyBatis中有兩種方式可以實現延遲加載:
<resultMap id="userMap" type="User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<collection property="articles" ofType="Article" column="user_id" select="selectArticles" fetchType="lazy"/>
</resultMap>
User user = sqlSession.selectOne("selectUser", 1);
LazyLoader lazyLoader = new LazyLoader() {
@Override
public void load() {
user.setArticles(sqlSession.selectList("selectArticles", user.getId()));
}
};
user.setLazyLoader(lazyLoader);
通過使用懶加載和延遲加載器,可以在需要時才去查詢關聯對象的信息,從而提高查詢性能。