• 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
  • 相关阅读:
    linux安装kibana
    linux安装6.5.3版本elastic search
    linux非root用户安装nginx
    linux非root用户安装ncurses-devel依赖
    linux无网络情况下安装rpm包
    linux非root用户安装rabbitmq
    linux非root用户安装4.0.14版本redis
    (初)Knockout 监控属性(Observables)
    ECMAScript6
    SonarLint 代码质量管理
  • 原文地址:https://www.cnblogs.com/wangchuanfu/p/5891165.html
Copyright © 2020-2023  润新知