zoukankan      html  css  js  c++  java
  • mybatis分页插件以及懒加载

    1.   延迟加载

    延迟加载的意义在于,虽然是关联查询,但不是及时将关联的数据查询出来,而且在需要的时候进行查询。

    开启延迟加载:

    <setting name="lazyLoadingEnabled" value="true"/>

    <setting name="aggressiveLazyLoading" value="false"/>

    lazyLoadingEnabled:true使用延迟加载,false禁用延迟加载。默认为true

    aggressiveLazyLoading:true启用时,当延迟加载开启时访问对象中一个懒对象属性时,将完全加载这个对象的所有懒对象属性。false,当延迟加载时,按需加载对象属性(即访问对象中一个懒对象属性,不会加载对象中其他的懒对象属性)。默认为true

     mybatisde 分页:

    其实分页的原理就是加个拦截器,在原有的sql加上limit分页查询而已

    具体使用参考《Mybatis分页插件 - PageHelper.docx》

    https://my.oschina.net/flags/blog?sort=time&p=2&temp=1474428389127

    http://www.cnblogs.com/shanheyongmu/p/5864047.html

    http://www.cnblogs.com/zhujiabin/p/5104841.html

    引入插件,顺序一定不能乱,否则会报错,应在<environments>上面

    <plugins>
            <!-- com.github.pagehelper为PageHelper类所在包名 -->
            <plugin interceptor="com.github.pagehelper.PageHelper">
                <!-- 方言 -->
                <property name="dialect" value="mysql"/>
                <!-- 该参数默认为false -->
                <!-- 设置为true时,使用RowBounds分页会进行count查询,查询数据总条数-->
                <property name="rowBoundsWithCount" value="true"/>
            </plugin>
        </plugins>
    /**
         * 一对多的查询
         */
        @Test
        public void queryOrderAndUserAndOrderDetailByOrderNumber() {
            //设置分页数据,第1页,3条数据
             PageHelper.startPage(1, 3);
            
            List<Order> orders = orderMapper
                    .queryOrderAndUserAndOrderDetailByOrderNumber("20140921002");
            PageInfo<Order> page = new PageInfo<Order>(orders);
            for (Order order : page.getList()) {
                System.out.println(order);
            }
            for (Order order2 :orders ) {
                System.out.println(order2);
            }
             // 封装页面信息
           
              System.out.println("数据总条数:" + page.getTotal());
                System.out.println("数据总页数:" + page.getPages());
                System.out.println("最后一页:" + page.getLastPage());
          /**
           下面这行代码不会再进行分页,只有紧跟着startPage的代码才会分页
          */
        orders=  orderMapper
                .queryOrderAndUserAndOrderDetailByOrderNumber("20140921002");
                
        }
    <!--    控制台打印-->
    
    Order [id=1, userId=1, orderNumber=20140921002, user=User [id=1, userName=zhangsan, password=null, name=张三, age=30, sex=null, birthday=null, created=null, updated=null]]
    Order [id=2, userId=2, orderNumber=20140921002, user=User [id=2, userName=lisi, password=null, name=李四, age=21, sex=null, birthday=null, created=null, updated=null]]
    Order [id=1, userId=1, orderNumber=20140921002, user=User [id=1, userName=zhangsan, password=null, name=张三, age=30, sex=null, birthday=null, created=null, updated=null]]
    Order [id=2, userId=2, orderNumber=20140921002, user=User [id=2, userName=lisi, password=null, name=李四, age=21, sex=null, birthday=null, created=null, updated=null]]
    数据总条数:6
    数据总页数:2
    最后一页:2
  • 相关阅读:
    vscode 在linux中,切换语言模式快捷键
    转载大神的一篇文章----【如何选择开源许可证?】
    Kibana6.x.x——源码发布
    Kibana6.x.x——【Running "run:optimizeBuild" (run) task】出现警告信息
    linux系统为文件添加执行权限
    Kibana6.x.x——执行yarn build出现的警告信息记录
    Kibana6.x.x——导航权限控制入门
    poj 2187:Beauty Contest(计算几何,求凸包,最远点对)
    poj 2386:Lake Counting(简单DFS深搜)
    蓝桥杯 第三届C/C++预赛真题(10) 取球游戏(博弈)
  • 原文地址:https://www.cnblogs.com/wangchuanfu/p/5891165.html
Copyright © 2011-2022 走看看