日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SSM中使用Mybatis的PageHelper插件实现分页

發(fā)布時(shí)間:2025/3/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SSM中使用Mybatis的PageHelper插件实现分页 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

效果

實(shí)現(xiàn)

前言

前面實(shí)現(xiàn)SSM整合以及實(shí)現(xiàn)原始手動(dòng)分頁(yè)參考

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/85113289

添加jar包

使用插件首先要先加載jar包

jar包下載:

https://download.csdn.net/download/badao_liumang_qizhi/10863649

將兩個(gè)jar包,放到項(xiàng)目下的lib目錄下。

修改applicationContext.xml

在sqlsession下增加

<property name="plugins"><array><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><!--使用下面的方式配置參數(shù),一行配置一個(gè) --><value></value></property></bean></array> </property>

完整代碼

<?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:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:annotation-config /><context:component-scan base-package="com.badao.service" /><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">?<property name="driverClassName">?<value>com.mysql.jdbc.Driver</value>?</property>?<property name="url">?<value>jdbc:mysql://localhost:3306/ssmtest?characterEncoding=UTF-8</value>?</property>?<property name="username">?<value>root</value>?</property>?<property name="password">?<value>523627</value>?</property>? ?</bean><bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="typeAliasesPackage" value="com.badao.pojo" /><property name="dataSource" ref="dataSource"/><property name="mapperLocations" value="classpath:com/badao/mapper/*.xml"/><property name="plugins"><array><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><!--使用下面的方式配置參數(shù),一行配置一個(gè) --><value></value></property></bean></array></property>??</bean><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.badao.mapper"/></bean></beans>

修改service

Service中去掉total方法和原來(lái)手動(dòng)分頁(yè)的方法

package com.badao.service;import java.util.List;import com.badao.pojo.User; import com.badao.util.Page;public interface UserService {List<User> selectAllUser();//List<User> selectAllUser(Page page);//int total();}

修改serviceImpl

注釋掉原來(lái)的手動(dòng)分頁(yè)方法

package com.badao.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import com.badao.mapper.UserMapper; import com.badao.pojo.User; import com.badao.service.UserService; import com.badao.util.Page; @Service public class UserServiceImpl implements UserService {@AutowiredUserMapper userMapper;public List<User> selectAllUser() {// TODO Auto-generated method stubreturn userMapper.selectAllUser();} /*?@Overridepublic List<User> selectAllUser(Page page) {// TODO Auto-generated method stubreturn userMapper.selectAllUser(page);}@Overridepublic int total() {// TODO Auto-generated method stubreturn userMapper.total();}*/}


修改mapper

userMapper.java中注釋掉total()方法以及原來(lái)的手動(dòng)分頁(yè)的方法。

package com.badao.mapper;import java.util.List; import com.badao.pojo.User; import com.badao.util.Page;public interface UserMapper {public int addUser(User user);public User selectUser(int id);public int updateUser(User user);public void deleteUser(int id);public List<User> selectAllUser();//public List<User> selectAllUser(Page page);//public int total();}

userMapper.xml中去掉total的select語(yǔ)句以及原來(lái)的limit語(yǔ)句

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.badao.mapper.UserMapper"><insert id="addUser" parameterType="User" >insert into user ( name,age ) values (#{name},#{age})??</insert><delete id="deleteUser" parameterType="_int" >delete from user where id= #{id}?</delete><select id="selectUser" parameterType="_int" resultType="User">select * from?? user? where id= #{id}??</select><update id="updateUser" parameterType="User" >< BR>???????????updateusersetname=#{name},age=#{age} where id=#{id}??</update><select id="selectAllUser" resultType="User">select * from?? user????<BR>???????????<!--<iftest="start!=null and count!=null">limit #{start},#{count}</if> --></select><!-- <select id="total" resultType="int">select count(*) from user</select>???? --></mapper>

修改Controller

通過(guò)

import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo;

導(dǎo)入類

通過(guò)

PageHelper.offsetPage(page.getStart(),5);

實(shí)現(xiàn)分頁(yè)按需查詢

通過(guò)

int total = (int) new PageInfo<>(cs).getTotal();

獲取查詢的總數(shù)

完整代碼

package com.badao.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView;import com.badao.pojo.User; import com.badao.service.UserService; import com.badao.util.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo;// 告訴spring mvc這是一個(gè)控制器類 @Controller @RequestMapping("") public class UserController {@AutowiredUserService userService;@RequestMapping("listUser")public ModelAndView listUser(Page page){ModelAndView mav = new ModelAndView();//根據(jù)分頁(yè)對(duì)象,進(jìn)行查詢獲取查詢對(duì)象集合//List<User> cs= userService.selectAllUser(page);//int total = userService.total();//根據(jù)總數(shù),計(jì)算最后一頁(yè)的信息PageHelper.offsetPage(page.getStart(),5);List<User> cs= userService.selectAllUser();int total = (int) new PageInfo<>(cs).getTotal();page.caculateLast(total);// 放入轉(zhuǎn)發(fā)參數(shù)mav.addObject("userList", cs);// 放入jsp路徑mav.setViewName("listUser");return mav;}}

修改測(cè)試類

注釋掉原來(lái)的的手動(dòng)分頁(yè)實(shí)現(xiàn)時(shí)的單元測(cè)試代碼

package com.badao.test;import java.util.List;import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import com.badao.mapper.UserMapper; import com.badao.pojo.User; import com.badao.util.Page; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;//使用junit4時(shí)報(bào)錯(cuò)導(dǎo)這個(gè)包 @RunWith(SpringJUnit4ClassRunner.class)//使用junit4進(jìn)行測(cè)試 @ContextConfiguration("classpath:applicationContext.xml")//加載配置文件 public class InsertTest {@Autowired//自動(dòng)注入private UserMapper userMapper;@Test//標(biāo)明是測(cè)試方法@Rollback(false)? //標(biāo)明使用完此方法后事務(wù)不回滾,true時(shí)為回滾public void testAdd() {for (int i = 0; i < 100; i++) {User user = new User();user.setName("user"+i);userMapper.addUser(user);}}/*? @Testpublic void testTotal() {int total = userMapper.total();System.out.println(total);}@Testpublic void testList() {Page p = new Page();p.setStart(2);p.setCount(3);List<User> cs=userMapper.selectAllUser(p);for (User c : cs) {System.out.println(c.getName());}}*/ }

jsp頁(yè)面代碼

保持不變

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.util.*"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%pageContext.setAttribute("APP_PATH", request.getContextPath()); %> <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>查詢所有用戶</title> </head><script type="text/javascript" src="${APP_PATH }/static/js/jquery-1.12.4.min.js"></script> <link href="${APP_PATH }/static/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet"> <script src="${APP_PATH }/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script> <body> <table align='center' border='1' cellspacing='0' class="table table-bordered"<th ><td>id</td><td>name</td><td>age</td></th><c:forEach items="${userList}" var="u"><tr class="active"><td >${u.id}</td><td>${u.name}</td><td>${u.age}</td></tr></c:forEach> </table> <div style="text-align:center"><a href="?start=0">首 頁(yè)</a><a href="?start=${page.start-page.count}">上一頁(yè)</a><a href="?start=${page.start+page.count}">下一頁(yè)</a><a href="?start=${page.last}">末 頁(yè)</a> </div></body> </html>

?

源碼下載

https://download.csdn.net/download/badao_liumang_qizhi/10863821

?

?

?

?

?


?

?

總結(jié)

以上是生活随笔為你收集整理的SSM中使用Mybatis的PageHelper插件实现分页的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。