zoukankan      html  css  js  c++  java
  • 阶段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下图:延迟加载。但是没有循环遍历集合

  • 相关阅读:
    字符串处理(包括正则生成工具)
    php.ini 个别字段笔记
    php-5.4 升级到 php7.2
    【mysql笔记】针对 group_concat 长度限制
    七牛,前端上传图片
    PHP 替换 特殊空白符
    【代码块】定时任务<swoole> 100%无人值守
    安装nodejs
    linux安装beanstalkd
    个人笔记上传 -- redis安装
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11324471.html
Copyright © 2011-2022 走看看