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
mybatis分页插件以及懒加载的更多相关文章
- js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用 一.总结 一句话总结:图片懒加载echo.js结合 Amaze UI ScrollSpy 使用的效果就是:懒加载 ...
- js插件---图片懒加载lazyload
js插件---图片懒加载lazyload 一.总结 一句话总结:使用异常简单,src里面放加载的图片,data-original里面放原图片,不懂的位置去官网或者github找API就好. 1.laz ...
- MyBatis关联查询和懒加载错误
MyBatis关联查询和懒加载错误 今天在写项目时遇到了个BUG.先说一下背景,前端请求更新生产订单状态,后端从前端接收到生产订单ID进行查询,然后就有问题了. 先看控制台报错: org.apache ...
- mybatis(三)懒加载
懒加载的好处: 所谓懒加载(lazy)就是延时加载,延迟加载.什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载.至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适,因为 ...
- Jquery前端分页插件pagination同步加载和异步加载
上一篇文章介绍了Jquery前端分页插件pagination的基本使用方法和使用案例,大致原理就是一次性加载所有的数据再分页.https://www.jianshu.com/p/a1b8b1db025 ...
- jQuery插件图片懒加载lazyload
来自XXX的前言: 什么是ImageLazyLoad技术 在页面上图片比较多的时候,打开一张页面必然引起与服务器大数据量的 交互.尤其是对于高清晰的图片,占的几M的空间.ImageLazyLoad技术 ...
- mybatis 嵌套查询与懒加载
懒加载:对于页面有很多静态资源的情况下(比如网商购物页面),为了节省用户流量和提高页面性能,可以在用户浏览到当前资源的时候,再对资源进行请求和加载. fetchType="lazy" ...
- 前端性能优化--图片懒加载(lazyload image)
话说前头: 上次写了一篇webpack的学习心得,webpack能做到提升前端的性能,其模块打包最终生成一个或少量的文件能够减少对服务端的请求.除此之外,本次的图片懒加载(当然不仅限于图片,还可以有视 ...
- 前端性能优化成神之路--图片懒加载(lazyload image)
图片懒加载(当然不仅限于图片,还可以有视频,flash)也是一种优化前端性能的方式.使用懒加载可以想要看图片时才加载图片,而不是一次性加载所有的图片,从而在一定程度从减少服务端的请求 什么是懒加载 懒 ...
随机推荐
- iOS开发中NSURL的基本操作
1.URL URL是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它. ...
- Core Data 学习简单整理01
Core Data是苹果针对Mac和iOS平台开发的一个框架, 通过CoreData可以在本地生成数据库sqlite,提供了ORM的功能,将对象和数据模型相互转换 . 通过Core Data管理和操作 ...
- wininet API调用,检测网络
[DllImport("wininet")] private extern static bool InternetGetConnectedState(out int ...
- Apache 2.x+jboss6.1反向代理session共享问题设置
2016年8月4日,第一次开笔写博客园,今天在公司解决了一个问题. apache+jboss做负载均衡的问题一直困扰了很久.问题描述如下,使用apche做反向代理转发给3台jboss 的app,app ...
- 编辑一个类库项目 即*.csproj这个文件的正确方式
以前总是用记事本打开,删除一些或增加一些已修改的文件 今天才知道,正确的方式为: 右键单击类库,选择“卸载项目”,然后再右键单击已卸载变为灰色的类库,选择“编辑*.csproj” 编辑完了重新加载一下 ...
- java J2EE学习入门
首先学习JAVA基础编程,大学教材就是最简单的了!象写写Helloworld啊 输出水仙花数啊 玩些简单的,慢慢在研究研究流啊,都可以了.然后学习简单的JSP,这个时候多上网上DOWN一些原码.多看看 ...
- 64位系统中开启32位应用,特别是OLEDB
IIS7 - Running 32-bit and 64-bit ASP.NET versions at the same time on different worker processes IIS ...
- 图的建立——邻接表表示(C语言+VC6.0平台)
图是一种重要而且相对复杂的数据结构,在实际编程中非常有用.邻接表是图的主要表示形式之一,是一种链接表表示方法. #include<stdio.h> #include<stdlib.h ...
- Linux编译错误集
1.编译驱动: FATAL: modpost: GPL-incompatible module ArmGpioDriver.ko uses GPL-only symbol 'class_destroy ...
- c++ primer( 文本查询程序)
读取用户指定的任意文本文件,然后允许用户从该文件查找单词,查询的结果是该单词出现的次数,并列出每次出现所在的行,如果某单词在同一行中多次出现,程序将只显示改行的一次.行号按升序显示(int main( ...