Mybatis最入门---分页查询(逻辑分页与SQL语句分页)

[一步是咫尺,一步即天涯]

到目前为止,我们介绍的Mybatis种种查询都是一次性的查询出所有结果并返回给上层。但是,在实际开发过程中,在大量数据存在的情况下,是很少这么做的。本文,我们将从逻辑分页,物理分页两种情况出发,分别介绍这两种方式。马上开始我们的正文部分吧。

准备工作:

a.操作系统 :win7 x64

b.基本软件:MySQL,Mybatis,SQLyog

--------------------------------------------------------------------------------------------------------------------------------------------------------

1.首先,看看我们数据中的内容,如果有看过前文的读者,可以直接沿用数据库即可。具体内容如下:

Mybatis最入门---分页查询(逻辑分页与SQL语句分页)_第1张图片

2.创建本例我们使用的工程,Mybatis11,工程结构如下:

Mybatis最入门---分页查询(逻辑分页与SQL语句分页)_第2张图片

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语句分页)结束


备注:

本文我们演示的方法,仅作为参考使用,实际开发使用的分页查询将在下文中详细讲述给大家,敬请期待!

你可能感兴趣的:(Mybatis)