阶段3 1.Mybatis_11.Mybatis的缓存_3 mybatis一对一实现延迟加载

不用骨架创建项目



复制一对多的代码src下的代码到我们刚才创建的项目里面




把依赖信息复制过来

这里原来实现的功能是立即加载的功能。sql语句是一次性查询的两个表关联的查询。

调整代码

删除AccountUser这个类



AccountTtest只保留findAll的方法


associaiton先剪切掉。

修改后

先运行这个单表操作

别名的问题

这是下面这个方法配置引起的。删掉下面红框内的代码即可。

再次来执行。正常执行成功

配置延迟加载

这里我们需要使用一个新的属性,叫做select


其实select调用的就是 IUserDao里面的findById这个方法


测试


数据时都查出来了。没有任何问题。


执行了三条sql语句。并没有看到有延迟的效果


延迟加载默认是false。这是Mybits官方网站的 文档

我们当前用的Mybits的版本是3.4.5.arrgressivelLazyLoading属性不设置也是可以的

在全局的SqlMapConfig.xml内进行配置

再来测试



入股我们这里的循环遍历都注释掉

那么他就只执行了一个主sql


左1:没有延迟加载。 右1:延迟加载,但是循环遍历了集合
左1下图:延迟加载。但是没有循环遍历集合

posted @ 2019-08-08 23:13  高山-景行  阅读(267)  评论(0编辑  收藏  举报