[一步是咫尺,一步即天涯]
到目前为止,我们介绍的Mybatis种种查询都是一次性的查询出所有结果并返回给上层。但是,在实际开发过程中,在大量数据存在的情况下,是很少这么做的。本文,我们将从逻辑分页,物理分页两种情况出发,分别介绍这两种方式。马上开始我们的正文部分吧。
准备工作:
a.操作系统 :win7 x64
b.基本软件:MySQL,Mybatis,SQLyog
--------------------------------------------------------------------------------------------------------------------------------------------------------1.首先,看看我们数据中的内容,如果有看过前文的读者,可以直接沿用数据库即可。具体内容如下:
2.创建本例我们使用的工程,Mybatis11,工程结构如下:
3.UserInfo为PO对象,属性与数据库表对应即可。【下文中没有给出的文件,请参考前文】
-------------------------------------------------------------------------------------------------------------------------------------------------------
一。逻辑分页:即虽然看起来实现了分页的功能,但实际上是将查询的所有结果放置在内存中,每次都从内存获取。这种情况适用于数据量较少的情况。请各位看官特别留意。【因此,在实际开发中,基本不会使用到逻辑分页的功能,下面的例子作为参考即可】
1.在UserInfoMapper.xml文件中增加对应查询语句,如下:
2.在UserInfoDao.java中增加对应接口,如下:
List selectUserInfo(RowBounds rowBounds);
3.增加对应单元测试方法,如下:
@Test
public void testSelect() {
try {
UserInfoDao userInfo = sqlSession.getMapper(UserInfoDao.class);
int start = 0;//正确的叫法应该是offset
int pagesize = 3;//正确的叫法应该是limit
RowBounds rowBounds = new RowBounds(start,pagesize);
List re = userInfo.selectUserInfo(rowBounds);
for(UserInfo ui:re){
System.out.println(ui);
}
} catch (Exception e) {
e.printStackTrace();
}
}
4.运行单元测试方法,观察控制台输出即可。
【再次提醒:上面的这种方式在实际性能表现上存在隐患,各位读者最好还是不要使用,作为参考即可】
-------------------------------------------------------------------------------------------------------------------------------------------------------
二,物理分页:这种分页方法从底层上就是每次只查询对应条目数量的数据,从而实现了真正意义上的分页。
1.在UserInfoMapper.xml文件中增加对应查询语句,如下:
2.在UserInfoDao.java中增加对应接口,如下:
List selectUserInfoByMap(Map map);
3.增加对应单元测试方法,如下:
@Test
public void testSelectByMap() {
try {
Map map = new HashMap();
UserInfoDao userInfo = sqlSession.getMapper(UserInfoDao.class);
map.put("start",0);
map.put("pagesize",4);
List re = userInfo.selectUserInfoByMap(map);
for(UserInfo ui:re){
System.out.println(ui);
}
} catch (Exception e) {
e.printStackTrace();
}
}
4.运行单元测试方法,观察控制台输出即可。
-------------------------------------------------------------------------------------------------------------------------------------------------------
至此,Mybatis最入门---分页查询(逻辑分页与SQL语句分页)结束
备注:
本文我们演示的方法,仅作为参考使用,实际开发使用的分页查询将在下文中详细讲述给大家,敬请期待!