mybaits延迟加载原理_mybatis如何实现延迟加载?mybatis延迟加载实现原理详解

很多刚刚接触mybatis的人都不知道应该如何去实现延迟加载,那么具体的要怎样才能实现呢?下面就让我们一起详细的来进行一下了解。

其实mybatis延迟加载就是按需查询(也就是在需要时进行查询)。

下面有两张表,分别是图书表(book)和图书类型表(category)。

他们是通过类型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

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

那么延迟加载究竟要怎样才能够实现呢?

Category实体类同上,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怎样去实现延迟加载你都了解了吗?更多相关知识,请继续通过关注奇Q工具网的常见问题栏目来进行了解吧。

推荐阅读:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值