mybatis怎么实现延迟加载

mybatis怎么实现延迟加载?针对这个问题,今天小编总结这篇有关mybatis实现延迟加载的文章,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。

成都创新互联专注于尼泸西网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供尼泸西营销型网站建设,尼泸西网站制作、尼泸西网页设计、尼泸西网站官网定制、微信小程序服务,打造尼泸西网络公司原创品牌,更为您提供尼泸西网站排名全网营销落地服务。

mybatis的延迟加载就是按需查询,在需要的时候进行查询。

有两张表:

图书表(book):

mybatis怎么实现延迟加载

图书类型表(category):

mybatis怎么实现延迟加载

他们之间通过类型id进行关联,现在我要显示图书类型名,点击类型名再显示该类型下的所有图书。

我们可以这样做在类型实体类里面添加一个属性存放该类型下的图书

public class Category {
    private int cid;
    private String cname;
    private List books;

//省略get set
}

一次性的把图书类型和图书查询出来,Sql语句如下:

   SELECT book.*,cname FROM book,category WHERE book.cid = category.cid

这样做可以完成功能,但是我们只是需要显示图书类型,点击的时候才显示该类型的图书,如果能做到开始只查询类型,点击类型的时候再查询该类型的图书,就不需要进行两表联查了,可以提高查询的效率,也比较节省内存,这就是延迟加载。

延迟加载如何实现?

mybatis怎么实现延迟加载

1.  Category实体类同上

2.  UserDao.xml:


   
        select * from category
   
   
       
       

       
   

   
        select * from book where cid = #{cid}
   

只有我们点击类型的时候才需要查询该类型下的图书,所以这里我们没有用两表联查,而是将类型表的查询语句和图书表的查询语句分开。

重点来看下这个配置:


collection,association是支持延迟加载的,这里的select属性表示要执行的sql语句,column表示执行sql语句要传的参数,该参数为select from category查询出来的字段cid,property=”books”表示查询出来的结果给到books属性。

关于mybatis实现延迟加载的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文标题:mybatis怎么实现延迟加载
URL标题:http://myzitong.com/article/gcdpde.html