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