Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)
来源:互联网 发布:js 全国城市字母排序 编辑:程序博客网 时间:2024/05/22 14:16
二、分页插件的介绍
博主采用的插件是PageHelper这个插件,使用起来十分方便。该插件支持以下数据库:
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
读一遍之后可能还不能完全懂怎么使用,可以先看完博主的这篇文章,然后慢慢再消化,但是上面的那篇文章还是需要从头到尾看一遍。
3.1、引入依赖
在pom.xml文件添加如下依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.0.0</version>
</dependency>
3.2、在Mybatis配置xml中配置拦截器插件
在mybatis-config.xml文件中添加插件后的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
<!-- 和startPage中的pageNum效果一样-->
<property name="offsetAsPageNum" value="true"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
<property name="rowBoundsWithCount" value="true"/>
<!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
<!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
<property name="pageSizeZero" value="true"/>
<!--3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
<!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
<!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
<property name="reasonable" value="false"/>
<!--3.5.0版本可用 - 为了支持startPage(Object params)方法 -->
<!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->
<!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值 -->
<!-- 不理解该含义的前提下,不要随便复制该配置 -->
<property name="params" value="pageNum=start;pageSize=limit;"/>
<!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
<property name="returnPageInfo" value="check"/>
</plugin>
</plugins>
</configuration>3.3、mapper文件添加sql
在userMapper.xml文件里面添加sql:
<select id="selectUserByUserName" parameterType="java.lang.String" resultMap="BaseResultMap">
SELECT *
FROM t_user
WHERE1 =1
<if test="userName != null and userName !=''">
AND USER_NAME = #{userName,jdbcType=VARCHAR}
</if>
ORDER BY USER_ID
</select>3.4、dao添加对用方法
UserDao.java添加如下方法:
3.5、service添加分页查询方法
UserService.java文件添加方法
PageInfo<User> queryByPage(String userName,Integer pageNo,Integer pageSize);
UserServiceImpl.java添加实现方法@Override
public PageInfo<User> queryByPage(String userName, Integer pageNo,Integer pageSize) {
pageNo = pageNo == null?1:pageNo;
pageSize = pageSize == null?10:pageSize;
PageHelper.startPage(pageNo, pageSize);
List<User> list = userDao.selectUserByUserName(userName);
//用PageInfo对结果进行包装
PageInfo<User> page = new PageInfo<User>(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;
}
UserServiceTest.java文件添加方法:
public void queryByPageTest(){
PageInfo<User> page = userService.queryByPage(null,1,1);
System.out.println(page);
}
在小宝鸽进行了上面的修改之后,第一运行报错了!!!!最后是pom.xml文件注释了下面两个包的依赖才运行成功了,注释的依赖如下:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
- Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)
- Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)
- Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)
- Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)
- Maven+Mybatis+Spring+SpringMVC实现分页
- spring+SpringMVC+Maven+Mybatis+Mysql分页实现
- SSM(Spring,springmvc,mybatis)+maven+AJAX实现分页功能
- SSM框架--(Spring+SpringMVC+Mybatis整合)附源码
- springMVC+spring+mybatis 框架下分页查询
- bootstrap + mybatis + maven + springmvc 实现分页效果
- (J2EE)Struts+Spring+MyBatis整合实现分页分页查询
- 分页查询简单实现(Freemarker+SpringMVC+Mybatis)
- springmvc+Mybatis 分页查询的简单实现
- MyBatis+SpringMVC+Spring 实现分页功能
- Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)
- Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)
- Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)
- Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)
- printk实现分析
- [php扩展开发] -- 添加类
- 程序学徒与导师
- Python---numpy一般操作
- git管理代码报错(使用Sourcetree工具) 有子模块Submodule(未解决)
- Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)
- 1.移动端与pc端点击事件的不同:
- TCP/IP、Http、Socket的区别
- linux scp(Linux之间复制文件和目录)命令参数及用法详解
- sun.misc.unsafe类的使用
- JAVA开发之 3 -JDK的下载与安装
- MISCONF Redis is configured to save RDB snapshots
- Linux 进程详解
- 如何使用amplifycolor调色插件