Mybatis + SpringMVC + Maven实现分页查询

使用Mybatis + Maven + SpringMVC 运行时,突然被需要分页查询的功能给难住了

这里推荐采用的插件是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的使用方法

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>

  

哦,顺便提一下,SpringMVC 的配置文件

 <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:org/hr/integrity/mapping/*.xml"></property>
        <property name="configLocation" value="classpath:/mybatis-config.xml"></property>
    </bean>

  

3.3、mapper文件添加sql

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

<resultMap id="BaseResultMap" type="org.hr.integrity.bean.Users" >
    <id column="user_id" property="userId" jdbcType="INTEGER" />
    <result column="user_name" property="userName" jdbcType="VARCHAR" />
    <result column="enterprise_name" property="enterpriseName" jdbcType="VARCHAR" />
    <result column="enterprise_email" property="enterpriseEmail" jdbcType="VARCHAR" />
    <result column="passwords" property="passwords" jdbcType="VARCHAR" />
    <result column="tel" property="tel" jdbcType="VARCHAR" />
    <result column="isapproval" property="isapproval" jdbcType="INTEGER" />
  </resultMap>
  <sql id="Base_Column_List" >
    user_id, user_name, enterprise_name, enterprise_email, passwords, tel, isapproval
  </sql>
  <select id="selectUsersByIsapproval" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select
    <include refid="Base_Column_List" />
    from users
    where isapproval = #{isapproval}
  </select>

  

3.4、dao添加对用方法

UserDao.java添加如下方法:

List<Users> selectUsersByIsapproval(Integer isapproval);

  

3.5、service添加分页查询方法

UserService.java文件添加方法

  public PageInfo<Users> selectUsersByIsaByPage(Integer isapproval,Integer pageNo,Integer pageSize)
    {
        pageNo = pageNo == null?1:pageNo;
        pageSize = pageSize == null?10:pageSize;
        PageHelper.startPage(pageNo, pageSize);
        List<Users> list = userDao.selectUsersByIsapproval(isapproval);
        //用PageInfo对结果进行包装
        PageInfo<Users> page = new PageInfo<Users>(list);
        //测试PageInfo全部属性
        System.out.println(page.toString());
        return page;
    }

  

至于 Mybatis + Maven + SpringMVC 的框架怎么搭建,呵呵,这里不告诉你!

其他博客:http://blog.csdn.net/u013142781/article/details/50410243

原文地址:http://bbs.landingbj.com/t-0-298931-1.html

时间: 2024-10-05 10:08:53

Mybatis + SpringMVC + Maven实现分页查询的相关文章

【MyBatis】MyBatis+SpringMVC+EasyUI整合分页

一.介绍 环境:MyBatis 3.0.x+Spring 3.0.x+EasyUI 采用SpringMVC+MyBatis框架整合的分页Demo,用的是首页这个:http://www.jeasyui.com/demo/main/index.php Demo结构如下: 再看一下效果: 二.项目详解: 前提是首先把所有的jar包导入进入,不管是用Maven或者手动都可以. 1.首先建立javabean,User.java: package com.bee.po; public class User

【转】Spring+Mybatis+SpringMVC+Maven+MySql搭建实例

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+SpringMVC+MySql的搭建实例,文章写得很详细,有代码有图片,最后也带有运行的效果. 本文工程免费下载 一.准备工作 1. 首先创建一个表: CREATE TABLE `t_user` ( `USER_ID` int(11) NOT NULL AUTO_INCREMENT, `USER_NAME` char(3

Spring+Mybatis+SpringMVC+Maven+MySql搭建实例

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+SpringMVC+MySql的搭建实例,文章写得很详细,有代码有图片,最后也带有运行的效果. 一.准备工作 1. 首先创建一个表: CREATE TABLE `t_user` ( `USER_ID` int(11) NOT NULL AUTO_INCREMENT, `USER_NAME` char(30) NOT NU

Mybatis的插件 PageHelper 分页查询使用方法

参考:https://blog.csdn.net/ckc_666/article/details/79257028 Mybatis的一个插件,PageHelper,非常方便mybatis分页查询,国内牛人的一个开源项目 github:https://github.com/pagehelper/Mybatis-PageHelper 使用文档:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.

springMVC手写分页查询

package com.neuedu.java7.baen; public class Page { private int currentPage = 1; //当前页数 private int totalPages; //总页数 private int total; //记录总行数 private int pageSize = 5; //每页记录行数 private int nextPage; //下一页 private int prefPage; //前一页 public Page(){

Spring+Mybatis+SpringMVC+Maven+MySql搭建实例(转)

文章转自http://www.cnblogs.com/cnndevelop/p/7029367.html 1. 首先创建一个表: CREATE TABLE `t_user` ( `USER_ID` int(11) NOT NULL AUTO_INCREMENT, `USER_NAME` char(30) NOT NULL, `USER_PASSWORD` char(10) NOT NULL, `USER_EMAIL` char(30) NOT NULL, PRIMARY KEY (`USER_I

myBatis+SpringMVC+Maven整合

一.先创建表结构 二.使用generator通过表结构自动生成model和dao.mapper 使用步骤: 1.解压generator.rar文件 2.文件中的generator.xml文件需要进行修改,修改里面的文件生成地址 3.打开生成语句.txt文件,复制出里面的内容,回到该文件所在目录下,右键-->打开命令窗口,将该命令执行,将会在相应的目录下生成文件Model,Dao.Mapper 生成的文件包括mapper.xml中生成的封装语句,已办是不够用的,需要后期添加和修改 注意:文件路径不

spring + mybatis + springMVC + maven 实现登陆的一些功能

近期的项目,从中学到了很多,现在分享给大家,希望对需要的有帮助 分享给大家的是 ssm的整合, 提供app的一些接口和业务层的代码, 还是废话少说,直接上代码吧!!! dao层的代码就不贴了,都是逆向工程生成的,直接从servcie层开始 UserYzmservice接口: /** * 发送用户验证码 * @author Administrator * */ public interface UserYzmService extends BaseService<UserYzm, UserYzmE

MyBatis使用(二)分页查询

由于MyBatis没有相关的分页查询,因此抽取出hibernate的分页查询功能,通过过滤器,对本地sql方言进行区分,对sql语句进行拼接和封装 步骤分为:1.先查询出总数   2.通过拼接的sql再去查询相关信息 /** * 带有分页信息的查询 * @param sqlMapId mybatis映射id * @param pageRequest 分页请求参数信息 * @return */ @SuppressWarnings({ "rawtypes", "unchecked