一、项目搭建

Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建

二、分页插件的介绍

博主采用的插件是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 
读一遍之后可能还不能完全懂怎么使用,可以先看完博主的这篇文章,然后慢慢再消化,但是上面的那篇文章还是需要从头到尾看一遍。

三、PageHelper的使用

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

 

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

3.1、引入依赖

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

<!-- mybatis分页插件依赖 -->
<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_userWHERE 1 = 1<if test="userName != null and userName !=''">AND USER_NAME = #{userName,jdbcType=VARCHAR}</if>ORDER BY USER_ID
</select>

3.4、dao添加对用方法

UserDao.java添加如下方法:

List<User> selectUserByUserName(@Param("userName") String userName);  

记得@Param必须有

3.5、service添加分页查询方法

UserService.java文件添加方法

PageInfo<User> queryByPage(String userName,Integer pageNo,Integer pageSize);

3.6、实现类添加对应实现

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;
}  

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

UserServiceTest.java文件添加方法:

@Test  public void queryByPageTest(){  PageInfo<User> page =  userService.queryByPage(null, 1, 1);System.out.println(page);}

3.8、运行

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

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

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

3.9、补充说明

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

引入过程:

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

4、源码下载

http://download.csdn.net/detail/jinwufeiyang/9637289

Maven+Mybatis+Spring+SpringMVC实现分页相关推荐

  1. myeclipes10.7+maven+myBatis+spring+springMvc

    SSM框架详细整合教程(Spring+SpringMVC+MyBatis) 2016年02月26日 01:50:21 程序员囧辉 阅读数:60951 版权声明:本文为博主原创文章,未经博主允许不得转载 ...

  2. 【BackEnd--SSM 框架详解】Mybatis+Spring+SpringMVC学习笔记(完整详细版)

    BackEnd 学习笔记 1 Java 2 SSM框架(Mybatis+Spring+SpringMVC) 3 SpringBoot(SpringBoot 3.x+MybatisPlus) 4 Spr ...

  3. MAVEN整合Spring+SpringMVC+Mybatis

    2016/1/20 14:47:28 原创,转载请注明出处 曾经看过<那些年我们一起追过的女孩>,片中有个比较经典的画面,至今记忆犹新,柯景腾多年后,做了一名作家,每天面对电脑码字,背后是 ...

  4. intelliJ idea 使用maven创建spring+springMVC+mybatis(SSM)

    2019独角兽企业重金招聘Python工程师标准>>> ssm demo github : [https://github.com/rongyaya1003/ssmDemo.git] ...

  5. mybatis+spring+springmvc ssm整合

    文章目录 mybatis 开发我的第一个mybatis程序 关于mybatis的核心API:SqlSession对象. mybatis连接数据库操作 log4j jackson parameterTy ...

  6. mybatis spring springMVC

    unit10-mybatis框架 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7ZIyKRxA-1611577268155)(第二阶段讲义04.assets/a0a2 ...

  7. Maven+Mybatis+Spring配置

    第一步:配置pom.xml依赖 1.配置slfj+logback:  Java代码   <!-- Logging -->   <dependency>   <groupI ...

  8. 用Eclipse 搭建一个Maven Spring SpringMVC 项目

    1: 先创建一个maven web  项目: 可以参照之前的文章:  用Maven 创建一个 简单的 JavaWeb 项目 创建好之后的目录是这样的; 2: 先配置maven  修改pom.xml & ...

  9. (Spring+SpringMVC+MyBatis)SSM三大框架整合教程

    目录 一.基本概念 1.Spring 2.SpringMVC 3.MyBatis 二.开发环境搭建 三.Maven Web项目创建 四.SSM整合 1.Maven引入需要的JAR包 2.Spring与 ...

最新文章

  1. mysql sql优化_浅谈mysql中sql优化
  2. java Android版_java-Android系统版本
  3. do not lie on the bed to watch pc or phones
  4. 语言中拟合函数 计算aic_Go语言函数深度解析(中)
  5. 创建世界级品牌的大师忠告
  6. iOS 抓包工具 charles工具
  7. 【音乐拼接】mp3格式
  8. 声艺fx16调音台怎么样_声艺FX16II 声艺(Soundcraft) FX16ii 调音台
  9. ubnt路由器虚拟服务器,UBNT UAP系列 Wi-Fi设置教程 装修必看
  10. 数据同步工具简单介绍
  11. Android Studio:基本UI界面设计 (详细)
  12. 洛谷P1603,P1597
  13. nginx配置地址端口
  14. Gradient Harmonized Single-stage Detector
  15. 电子商务外包为成为中小企业最爱
  16. [论文笔记]slope one predictors for online rating-based collaborative filtering
  17. 从游戏服务端角度分析移动同步(状态同步)
  18. Java:抽象成类找对象
  19. C#配置文件之App.config和.settings
  20. C语言 六大门派身份识别

热门文章

  1. 固态电池技术取得新突破,充电一分钟续航800公里
  2. Hyperledger Fabric Membership Service Providers (MSP)——成员服务
  3. Centos R安装
  4. [翻译]Django tutorial, part 1: Models
  5. WSUS客户端无法发现
  6. Hibernate(十三)迫切内连接fetch
  7. 【软件开发综合实验】文本压缩软件
  8. 浅谈line-height
  9. Android——DDMS简单介绍
  10. H3C 防火墙无法ping通端口