mybatis分页插件-pagehelper的使用

2025-10-29 00:56:59

1、首先在mybatis.cfg.xml文件中增加pagehelper插件配置:

<?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>

  <settings>

        <setting name="mapUnderscoreToCamelCase" value="true"/>

  </settings>

  

  <typeAliases>

        <package name="com.gwolf.crud.bean"/>

  </typeAliases>

  

  <plugins>

    <!-- com.github.pagehelper为PageHelper类所在包名 -->

    <plugin interceptor="com.github.pagehelper.PageInterceptor">

        <property name="reasonable" value="true"/>

        </plugin>

  </plugins>

</configuration>

mybatis分页插件-pagehelper的使用

2、配置spring、springmvc、mybatis集成配置文件:

        <context:component-scan base-package="com.gwolf">

                <context:exclude-filter type="annotation" 

                        expression="org.springframework.stereotype.Controller"/>

        </context:component-scan>

        

        <context:property-placeholder location="classpath:dbconfig.properties"/>

        

        <!-- Spring的配置文件,主要配置和业务逻辑有关的 -->

        <bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="comboPooledDataSource">

                <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>

                <property name="driverClass" value="${jdbc.driverClass}"></property>

                <property name="user" value="${jdbc.user}"></property>

                <property name="password" value="${jdbc.password}"></property>

        </bean>

        

        

        <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactoryBean">

                <!-- 指定mybatis全局配置文件的位置 -->

                <property name="configLocation" value="classpath:mybatis-config.xml"></property>

                <property name="dataSource" ref="comboPooledDataSource"></property>

                

                <property name="mapperLocations" value="classpath:mapper/*.xml"></property>

        </bean>

        

        

        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

                <property name="basePackage" value="com.gwolf.crud.dao"></property>

        </bean>

        

        <bean class="org.mybatis.spring.SqlSessionTemplate" id="sqlSession">

                <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean" />

                <constructor-arg name="executorType" value="BATCH" />

        </bean>

        

        

        

        <bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" 

                        id="dataSourceTransactionManager">

                <property name="dataSource" ref="comboPooledDataSource"></property>

        </bean>

        <aop:config>

                <aop:pointcut expression="execution(* com.gwolf.crud.service..*(..))" 

                                id="txPoint"/>

                <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>

        </aop:config>

        <!-- 配置事务如何切入 -->

        <tx:advice id="txAdvice" transaction-manager="dataSourceTransactionManager">

                <tx:attributes>

                        <!-- 所有方法都是事务方法 -->

                        <tx:method name="*"/>

                        <tx:method name="get*" read-only="true"/>

                </tx:attributes>

        </tx:advice>

</beans>

mybatis分页插件-pagehelper的使用

3、在web.xml文件中进行spring与springmvc相关配置:

  <context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>classpath:applicationContext.xml</param-value>

  </context-param>

  <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

  <servlet>

    <servlet-name>dispatcherServlet</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>dispatcherServlet</servlet-name>

    <url-pattern>/</url-pattern>

  </servlet-mapping>

  <filter>

    <filter-name>characterEncodingFilter</filter-name>

    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

    <init-param>

      <param-name>encoding</param-name>

      <param-value>UTF-8</param-value>

    </init-param>

    <init-param>

      <param-name>forceRequestEncoding</param-name>

      <param-value>true</param-value>

    </init-param>

    <init-param>

      <param-name>forceResponseEncoding</param-name>

      <param-value>true</param-value>

    </init-param>

  </filter>

  <filter-mapping>

    <filter-name>characterEncodingFilter</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

  <filter>

    <filter-name>hiddenHttpMethodFilter</filter-name>

    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>hiddenHttpMethodFilter</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

  <filter>

    <filter-name>httpPutFormContentFilter</filter-name>

    <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>httpPutFormContentFilter</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

</web-app>

mybatis分页插件-pagehelper的使用

4、配置springmvc相关配置:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xmlns:p="http://www.springframework.org/schema/p"

        xmlns:context="http://www.springframework.org/schema/context"

        xmlns:mvc="http://www.springframework.org/schema/mvc"

        xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd

                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

          <context:component-scan base-package="com.gwolf" use-default-filters="false">

          

                <context:include-filter type="annotation" 

                        expression="org.springframework.stereotype.Controller"/>

          </context:component-scan>

          

          <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

                <property name="prefix" value="/WEB-INF/views/"></property>

                <property name="suffix" value=".jsp"></property>

          </bean>

          

          <mvc:default-servlet-handler/>

          

          <mvc:annotation-driven />

</beans>

mybatis分页插件-pagehelper的使用

5、现在集成环境已经搭建好了,pagehelper的使用只要在控制层几行代码就可以了:

package com.gwolf.crud.controller;

@Controller

public class EmployeeController {

        @Autowired

        EmployeeService employeeService;

        

        

        @RequestMapping("/emps")

        public String getEmps(@RequestParam(value="pn",defaultValue="1") Integer pn,Model model) {

                PageHelper.startPage(pn, 5);

                

                List<Employee> employees =   this.employeeService.getAll();

                

                //传入连续显示的页数

                PageInfo<Employee> pageInfo = new PageInfo<Employee>(employees,5);

                

                model.addAttribute("pageInfo",pageInfo);

                

                return "list";

        }

     

}

mybatis分页插件-pagehelper的使用

6、新建一个jsp页面,分页查询员工信息:

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%

        pageContext.setAttribute("APP_PATH",request.getContextPath());

%>

<script type="text/javascript" src="${APP_PATH}/static/js/jquery-3.2.1.min.js"></script>

<link rel="stylesheet" href="${APP_PATH}/static/bootstrap-3.3.7-dist/css/bootstrap.min.css" />

<script type="text/javascript" src="${APP_PATH}/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>

<html>

        <body>

                

               

                <div class="container">

                        <!-- 标题行 -->

                        <div class="row">

                                <div class="col-md-12">

                                        <h1>SSM-CRUD</h1>

                                </div>

                        </div>

                        

                        <!-- 按钮 -->

                        <div class="row">

                                <div class="col-md-4 col-md-offset-8">

                                        <button class="btn btn-primary" id="emp_add_modal_btn">新增</button>

                                        <button class="btn btn-danger"></button>

                                </div>

                        </div>

                        

                        <!-- 显示表格 -->

                        <div class="row">

                                <div class="col-md-12">

                                        <table class="table table-hover" id="emps_table">

                                                <thead>

                                                        <tr>

                                                                <th>#</th>

                                                                <th>empName</th>

                                                                <th>gender</th>

                                                                <th>email</th>

                                                                <th>department</th>

                                                                <th>

                                                                        操作

                                                                </th>

                                                        </tr>

                                                </thead>

                                                

                                                <tbody>

                                                        

                                                </tbody>

                                        </table>

                                </div>

                        </div>

                        

                        <!-- 显示分页信息 -->

                        <div class="row">

                                <div class="col-md-6" id="page_info_area">

                                        

                                </div>

                                

                                <!-- 分页导航条 -->

                                <div class="col-md-6" id="page_nav_area">

                                        

                                </div>

                        </div>

                        

                </div>

        </body>

     

</html>

mybatis分页插件-pagehelper的使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢