Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)

一、项目搭建

关于项目搭建,小宝鸽以前写过一篇Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建,这篇文章提供了详细的搭建过程,而且提供了源码下载,接下来的将在这个源码的基础上继续开发。所以建议各位猿友可以把猿友下载一下。

二、分页插件的介绍

博主采用的插件是PageHelper这个插件,使用起来十分方便。该插件支持以下数据库:

1

2

3

4

5

6

7

8

9

10

Oracle

Mysql

MariaDB

SQLite

Hsqldb

PostgreSQL

DB2

SqlServer(2005+)

Informix

H2

对应于github的项目地址: 
https://github.com/pagehelper/Mybatis-PageHelper。 
关于使用建议猿友们可以详细阅读下这里的介绍: 
http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/HowToUse.markdown 
读一遍之后可能还不能完全懂怎么使用,可以先看完博主的这篇文章,然后慢慢再消化,但是上面的那篇文章还是需要从头到尾看一遍。

三、PageHelper的使用

在”一、项目搭建“里下载好了源码,下载的源码导入eclipse后的结构里面,有如下的文件:

Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)_第1张图片Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)_第2张图片

接下来我们并不需要新增文件,直接在这些文件上修改就好了。

3.1、引入依赖

在pom.xml文件添加如下依赖:

1

2

3

4

5

6

    com.github.pagehelper

    pagehelper

    4.0.0

3.2、在Mybatis配置xml中配置拦截器插件

在mybatis-config.xml文件中添加插件后的内容如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

"1.0" encoding="UTF-8"?> 

"-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"

   

    

    "com.github.pagehelper.PageHelper">

        "dialect" value="mysql"/>

        

        

        

        "offsetAsPageNum" value="true"/>

        

        

        "rowBoundsWithCount" value="true"/>

        

        

        "pageSizeZero" value="true"/>

        

        

        

        "reasonable" value="false"/>

        

        

        

        

        "params" value="pageNum=start;pageSize=limit;"/>

        

        "returnPageInfo" value="check"/>

    

3.3、mapper文件添加sql

在userMapper.xml文件里面添加sql:

1

2

3

4

5

6

7

8

9

10

3.4、dao添加对用方法

UserDao.java添加如下方法:

1

List selectUserByUserName(@Param("userName") String userName);

记得@Param必须有

3.5、service添加分页查询方法

UserService.java文件添加方法

1

PageInfo queryByPage(String userName,Integer pageNo,Integer pageSize);

3.6、实现类添加对应实现

UserServiceImpl.java添加实现方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

@Override

public PageInfo queryByPage(String userName, Integer pageNo,Integer pageSize) {

    pageNo = pageNo == null?1:pageNo;

    pageSize = pageSize == null?10:pageSize;

    PageHelper.startPage(pageNo, pageSize);

    List list = userDao.selectUserByUserName(userName);

    //用PageInfo对结果进行包装

    PageInfo page = new PageInfo(list);

    //测试PageInfo全部属性

    System.out.println(page.getPageNum());

    System.out.println(page.getPageSize());

    System.out.println(page.getStartRow());

    System.out.println(page.getEndRow());

    System.out.println(page.getTotal());

    System.out.println(page.getPages());

    System.out.println(page.getFirstPage());

    System.out.println(page.getLastPage());

    System.out.println(page.isHasPreviousPage());

    System.out.println(page.isHasNextPage());

    return page;

}

3.7、单元测试类添加分页查询测试方法

UserServiceTest.java文件添加方法:

1

2

3

4

5

@Test 

    public void queryByPageTest(){ 

        PageInfo page =  userService.queryByPage(null, 1, 1);

        System.out.println(page);

    }

3.8、运行

在小宝鸽进行了上面的修改之后,第一运行报错了!!!!最后是pom.xml文件注释了下面两个包的依赖才运行成功了,注释的依赖如下:

Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)_第3张图片

具体原因现在小宝鸽也不知道,应该是包有冲突的原因吧,如果猿友们知道原因麻烦私信我或评论解释一下。

然后运行单元测试类,结果如下:

Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)_第4张图片

3.9、补充说明

在3.8中,我注释了那两个包依赖是web项目相关的依赖,如果仍需要进行前端开发的猿友可以引入tomcat就好了,引入结果如下:

Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)_第5张图片

引入过程:

选中项目右键–>build path,然后如下操作:

Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)_第6张图片

Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)_第7张图片

Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)_第8张图片

4、源码下载

http://download.csdn.net/detail/u013142781/9379685

转载: http://blog.csdn.net//u013142781/article/details/50410243

你可能感兴趣的:(SSM/SSH)