spring mvc mysql分页查询_Mybatis+SpringMVC实现分页查询(附源码)

本文介绍了如何在Spring MVC项目中利用PageHelper插件进行分页查询,详细阐述了从项目搭建到分页查询的每个步骤,包括引入依赖、配置插件、编写SQL、实现分页查询方法、单元测试以及解决运行时问题。

一、项目搭建

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

二、分页插件的介绍

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

Oracle

Mysql

MariaDB

SQLite

Hsqldb

PostgreSQL

DB2

SqlServer(2005+)

Informix

H2

三、PageHelper的使用

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

a6f2d6d844e0f602e21522c78bbe0454.png

37eb36992e1453cb9d018475a232dddf.png

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

3.1、引入依赖

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

com.github.pagehelper

pagehelper

4.0.0

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

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

3.3、mapper文件添加sql

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

SELECT *

FROM t_user

WHERE 1 = 1

AND USER_NAME = #{userName,jdbcType=VARCHAR}

ORDER BY USER_ID

3.4、dao添加对用方法

UserDao.java添加如下方法:

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

记得@Param必须有

3.5、service添加分页查询方法

UserService.java文件添加方法

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

3.6、实现类添加对应实现

UserServiceImpl.java添加实现方法

@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文件添加方法:

@Test

public void queryByPageTest(){

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

System.out.println(page);

}

3.8、运行

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

14b057c9c310034e61353d20a78492ce.png

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

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

c30a9dadf04e3f644b3900085fabf619.png

3.9、补充说明

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

4fe98abebbdaec6a71a3de137fe04421.png

引入过程:

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

d436cd2724dc015c014dd5022871f955.png

e5e5cee74681013204c7b40497c97aa4.png

66207b176c89e13f25736bc68d44da53.png

4、源码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值