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