SSM整合实例--(二)PageHelper分页操作

mybatis的分页插件+ssm整合 介绍 分页是我们开发项目时经常使用到的一个功能,它的好处是页面美观,提高查询效率,并不是直接将所有的数据都查出,而是只查询必须的数据。 我们开发项目时一般都会使用比较方便的工具,myBatis有一个分页工具叫pageHelper,这个插件其实就是对之前大家写的那个分页逻辑的封装,使用起来更加简单,实现方式都是一样。这个插件是国内一个大牛写的现在在github上维护 下载地址 https://git... 阅读详情

一、PageHelper分页简介

MyBatis 分页插件 PageHelper,如果你也在用
MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。

摘自官网,听说是最方便的分页插件。

二、PageHelper使用

2.1 导入jar包

使用maven的直接添加依赖就好了,这次没有使用maven,导入以下两个jar包。

在这里插入图片描述
2.2 页面搭建

(一)中使用了很简单的JSP页面,这次使用easyui来做分页页面。需先导入easyui的js和css文件,导入后目录如下。

jsp中放本次所使用的的文件,list为(一)的简单页面。index.jsp为此次简单的主页,product_list.jsp为本次easyui的商品列表页。

在这里插入图片描述
index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>首页</h1>

	<a href="${pageContext.request.contextPath }/getProductList">商品列表</a>

</body>
</html>

product_list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
	<!-- 引入easyUI的CSS和JS -->
	<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/themes/default/easyui.css">
	<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/themes/icon.css">
	<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.min.js"></script>
	<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.easyui.min.js"></script>
	<script type="text/javascript" src="${pageContext.request.contextPath }/locale/easyui-lang-zh_TW.js"></script>
</head>
<script type="text/javascript">
	$(function(){
	//	alert(1);
		$('#dg').datagrid({    
			url:'${pageContext.request.contextPath }/productList',    
			columns:[[    
				{field:'pName',title:'商品名称',width:160,sortable:true},    
				{field:'pPrice',title:'商品单价',width:160,sortable:true},    
				{field:'xxx',title:'操作',width:180,align:'center',formatter: function(value,row,index){
					return "<a href='#'>修改</a> | <a href='#'>删除</a>";
					}
				}
			]], 
			//显示斑马线
			striped:true,
			//显示分页工具条
			pagination:true,
			//自定义pagesize
			pageList:[3,5,10],
			pageSize:5
		});  
	});
</script>
	
	<body>
		<h1>商品管理页面</h1>
		<table id="dg" style="width:500px;"></table>
	</body>
</html>

页面效果:

在这里插入图片描述
在这里插入图片描述
字体引错了,引用了台湾的繁体,图已经截完了,懒得改了。easyui-lang-zh_TW.js换成easyui-lang-zh_CN.js就好了。

2.3 后台代码

结构如下
在这里插入图片描述
EasyUIDateGridResult.java

package com.cf.common.pojo;

import java.util.List;

/**
 * datagrid展示数据的pojo类
 * 
 * @author cf
 *
 */
public class EasyUIDateGridResult {
	private Integer total;

	private List<?> rows;

	public Integer getTotal() {
		return total;
	}

	public void setTotal(Integer total) {
		this.total = total;
	}

	public List<?> getRows() {
		return rows;
	}

	public void setRows(List<?> rows) {
		this.rows = rows;
	}

}

ProductService.java

新增以下方法

//easy UI的方式返回数据
public EasyUIDateGridResult getProductList(Integer page, Integer rows);

ProductServiceImpl.java

新增以下方法:

/**
 * 根据当前页面和行数实现分页
 */
@Override
public EasyUIDateGridResult getProductList(Integer page, Integer rows) {
	//使用pageHelper设置分页信息
	if(null == page) page = 1;
	if(null == rows) rows = 5;
	PageHelper.startPage(page, rows);
	//设置example对象,查询所有list
	TbProductExample example = new TbProductExample();
	List<TbProduct> list = mapper.selectByExample(example);
	//获取分页信息
	PageInfo<TbProduct> info = new PageInfo<>(list);
	//分装到EasyUIDateGridResult
	EasyUIDateGridResult result = new EasyUIDateGridResult();
	//设置总纪录数
	result.setTotal((int)info.getTotal());
	//设置list
	result.setRows(info.getList());
	
	return result;
}

PageController.java

导向今天刚写的jsp页面

package com.cf.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cf.common.pojo.EasyUIDateGridResult;
import com.cf.pojo.TbProduct;
import com.cf.service.ProductService;

@Controller

public class PageController {

	@Autowired
	private ProductService productService;
	
	//导向主页
	@RequestMapping("/")
	public String index() {
		return "index";
	}
	
	//导向商品页面
	@RequestMapping("/getProductList")
	public String getProductList() {
		return "product_list";
	}
	
	//无分页的简单jsp商品页面
	@RequestMapping("/list")
	public String list(Model model) {
		List<TbProduct> list = productService.list();
		model.addAttribute("list", list);
		return "list";
	}
	
	//带分页的JSP页面
	@RequestMapping("/productList")
	@ResponseBody
	public EasyUIDateGridResult getProductList(Integer page, Integer rows) {
		EasyUIDateGridResult result = productService.getProductList(page, rows);
		return result;
	}
}

springmvc.xml

配置中增加以下配置语句,放行静态资源。

	<mvc:resources location="/WEB-INF/css/" mapping="/css/**"/>
	<mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>
	<mvc:resources location="/WEB-INF/locale/" mapping="/locale/**"/>
	<mvc:resources location="/WEB-INF/plugins/" mapping="/plugins/**"/>
	<mvc:resources location="/WEB-INF/themes/" mapping="/themes/**"/>

因为web.xml配置 / 的路径,所有访问全部拦截,所有静态资源也被拦截,但是不包括jsp页面。使用以上配置进行放行。

如果jsp页面有的静态资源被放行有的没有,路径也正确,注意下引入的先后顺序,让jquery先引入
在这里插入图片描述
2.4 PageHelper的配置

pagehelper也需要配置,否则查询出来是没有分页效果的。如果页面及分页工具栏均正常展示,但是数据没有被分页。需查看此配置是否正确。

applicationContext-dao.xml

在sqlSessionFactoryBean的bean中添加PageHelper的配置

<!-- 配置sqlsessionfactory -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 设置MyBatis核心配置文件 -->
	<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/>
	<!-- 配置数据源 -->
	<property name="dataSource" ref="dataSource"></property>
	 
	<!-- 配置mybatis分页插件PageHelper -->
	<property name="plugins">
		<array>
			<bean class="com.github.pagehelper.PageInterceptor">
				<property name="properties">
					<!-- 什么都不配,使用默认的配置 -->
					<value></value>
				</property>
			</bean>
		</array>
	</property>
</bean>

三、页面效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上是使用PageHelper进行分页。easyui接受的分页json数据是固定格式,详细可以去看easyui的教程。后面慢慢更新CRUD操作

【SpringMVC 】什么是SpringMVC(二)?如何整合ssm框架以及使用mybatisPlus? MybatisPlus的基础操作封装了常见的增删改查操作,使得开发者可以更容易地使用MybatisPlus进行数据库操作。这些基础操作是通过Mapper接口和实现类来完成的,开发者只需要继承BaseMapper接口即可。以下是MybatisPlus支持的基础操作: 插入:insert、insertBatch、insertOrUpdate 等方法。 更新:updateById、update、updateBatchById 等方法。 删除:deleteById、deleteByMap、delete 等方法。 阅读详情

相关推荐

SSM+PageHelper实现分页——及解决PageHelper失效问题

PageHelper简述:一款好用的开源免费的Mybatis第三方物理分页插件,用起来非常方便,减少了很多代码量。 官方文档:https://pagehelper.github.io/docs/howtouse/,官方文档是最靠谱的,多看几眼,少踩几个坑! 一.SSM项目整合PageHelper 1.添加坐标或者导入jar包 <dependency> <groupId>com.github.pagehelper</groupId> <artifact

lst991120的博客 2666

分页插件PageHelper实例

【代码】分页插件PageHelper实例。

mingzq123的博客 223

ssm中使用myBatis分页插件pageHelper:进行分页查询

分页查询是开发项目时必不可少的,这里给大家介绍一个myBatis中的分页插件:pageHelper,使用分页插件可以方便并且快速的实现分页查询。

qq_44775798的博客 2667

PageHelper 分页的实例

后端代码 //做一个显示全部的 @RequestMapping("/goto_shopkeeperJSP") public String goto_shopkeeperJSP(@RequestParam(value = "pn", required = false, defaultValue = "1")Integer pn , Model model){ //暂时不做商家登录界面 //这个一定要先写在查询前面,一般是这样 PageHelper.startPage(pn,5); Li

qq_42331499的博客 515

SSM框架整合与Mybatis-PageHelper分页功能实践

本文还有配套的精品资源,点击获取 简介:本文介绍了在企业级Web开发中广泛使用的Spring、SpringMVC和MyBatis框架的整合过程。通过详细步骤指导如何配置这三个框架,并利用MyBatis-PageHelper插件实现分页功能。整合后的SSM框架能够简化Java应用开发,提供灵活高效的数据访问,便于开发者快速搭建具备分页功能的Web项目。 1. Spr...

weixin_35391606的博客 936

OpenCode:开源代码智能代理平台的全面解析

OpenCode是一个开源代码智能代理平台,采用模块化微服务架构,支持多种AI模型集成。该系统包含前端交互层、代理服务层和模型集成层,提供Build、Plan和General三种代理模式,分别负责代码编写、分析和复杂任务处理。OpenCode支持跨平台安装,具备权限验证、上下文感知等安全机制,并集成LSP协议实现深度代码理解。相比竞品,其开源特性、终端优先设计和提供商无关架构具有明显优势,适用于个人开发、团队协作等多种场景,为开发者提供强大的AI辅助编程能力。

Aaron_945的博客 1423

SSM+PageHelper实现分页查询

SSM+PageHelper实现分页查询

程序员阿文 1301

代码实现ROS2bag录制数据和回放数据(C++)

ROS2的ROS2bag功能可以将指定Topic中的数据以.db3的格式(不同于ROS)保存到本地文件中。读取文件数据可以实现数据回放。

m0_57124501的博客 3256

ssm 使用PageHelper 实现分页查询,前台是easyui

service 层代码如下 @Override public void pageQuery(PageBean pageBean,Staff staff) { StaffExample staffExample = new StaffExample(); Criteria createCriteria = staffExample.createCriteria(); //这个分页...

qq_37611061的博客 770

Windows安装ros2(Jazzy版本+win10/win11)-1.配置windows终端

更高版本的terminal可能设置里更加丰富, 有默认以管理员身份启动的选项等,可自行配置。打开微软应用商店, 在其中搜索并下载 Terminal 即可(注意别挂梯子)下载并安装, 安装的位置自行替换,建议别放到系统盘中。点击任务栏中的搜索, 输入store。

weixin_48398592的博客 1453

从零到一:高通QCS6490边缘AI开发板的Linux生态构建与实战避坑指南

本文详细介绍了在高通QCS6490边缘AI开发板上构建Linux生态系统的完整流程,包括开发环境准备、系统镜像构建与烧录、AI运行时环境配置、模型部署优化以及性能调试。重点解析了如何利用Hexagon DSP的高达12 TOPS AI算力,并提供了实战中的避坑指南和性能优化技巧,帮助开发者高效实现边缘AI应用从概念验证到产品落地的全过程。

eee77的博客 770

SSM 整合 分页插件 PageHelper

一、简介 现在开发做常用的ORM框架就是MyBatis了,在实际开发中少不了做分页处理,这里提供最常用的分页插件PageHelper PageHelper官网:https://pagehelper.github.io/ 二、使用篇 【springboot2.0 + PageHelper】 注意: springboot2.0 集成时要使用1.2.x以后版本 1、maven依赖 https://mv...

日拱一卒 4768

lammps案例:reaxff势模拟Fe(OH)3高温反应过程

所有的reaxff模拟,如:氧化、腐蚀、热裂解、燃烧等模拟,均可采用此模拟框架,只需要更换data文件、势文件,代码中的control文件可以不写,电荷平衡文件也可以用reaxff替换。该案例主要模拟Fe(OH)3在高温下的反应过程,主要代码来自lammps自带的案例。lammps自带案例没有产物输出,故在此基础上稍加修改,增加了产物输出命令。如果需要系统学习反应势的模拟,可考虑报名培训课程。本文分享一个reaxff反应势的案例。in文件代码已经注释,以供参考。大家好,我是小马老师。

lammps_jiayou的博客 1965

【SSM进阶学习】详解SSM框架中的整合与分页

定义db.properties数据库配置文件针对分页,使用的是PageHelper分页插件,版本使用的是5.1.8。参考文档PageHelper是适用于MyBatis框架的一个分页插件,它支持基本主流与常用的数据库,如MySQL、Oracle、MariaDB、SQLite、Hsqldb等。特性简单易用: PageHelper 提供了简单的配置方式,可以轻松地在 MyBatis 中启用分页功能。

陈橘又青的博客 2万+

基于STM32L4XX、HAL库的ESP32-S3-WROOM-1-N4 WIFI模块驱动程序设计

/ 检查是否收到完整的一行(以\r\n结尾)// 例如: 解析AT命令响应或MQTT消息等。// UART2初始化已在CubeMX中配置。// USART2初始化函数(由CubeMX生成)// 缓冲区溢出,重置。// 如果需要等待响应。// 处理接收到的数据。// 处理接收到的数据。// 等待ESP32模块启动。// 主循环其他任务。// 启用UART全局中断。// 发送HTTP GET请求。// 发送AT测试命令。// 连接Wi-Fi。// UART中断回调函数。

zhusl6688的博客 286

代谢组数据分析(十九):随机森林构建代谢组预后模型

建立胃癌(GC)预后模型时,从队列3中的181名患者中,使用右删失结果数据进行了随机分层抽样,分为训练数据集(n = 121)和测试数据集(n = 60)。训练了一个包含1000棵树的随机生存森林(RSF)模型,根据它们基于排列的特征重要性来选择突出的特征。通过再次训练随机生存模型,并选取28种代谢物,建立了显示出色预测能力(AUROC = 0.832,95% CI:0.697-0.951)的最佳模型,用于预测测试数据集中GC患者的生存结果。

专注生信领域 1713

[PageHelper]-->SSM分页操作的实现

利用pageHelper插件在SSM框架中实现分页操作,同时这个插件应用很方便,理解其各个参数内涵,在SpringBoot中也很好应用

nisinoya的博客 2528

STM32声源定位:实现声源定位的嵌入式解决方案

通过以上代码,我们可以获取麦克风音频信号样本,并使用交叉相关法计算声源的位置。然而,我可以帮助您解答有关STM32声源定位的问题,提供相关的代码和指导。获取了麦克风音频信号后,我们可以使用信号处理算法来计算声源的位置。该算法通过计算不同麦克风之间的信号延迟来确定声源的方向。首先,我们需要获取每个麦克风的音频信号。声源定位是一项重要的技术,可以帮助我们确定声音的来源位置。在嵌入式系统中,使用STM32微控制器可以实现精确的声源定位。声源定位的基本原理是通过多个麦克风阵列接收到的声音信号来计算声源的位置。

UplKubernetes的博客 2581

分页插件 - PageHelper的介绍和使用

PageHelper介绍 PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql、 oracle、mariaDB、DB2、SQLite、Hsqldb等。 PageHelper使用 引入分页插件有下面两种方式: ① 引入jar包,以下地址可以下载对应jar包 https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/ 由于使用了sql

qq_44866169的博客 6208

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SSM中PageHelper实现简单分页

本文在SSM框架下使用pageHelper实现简单分页,关于SSM的部分请参看:SSM+Maven 1.引入Maven依赖 <!-- 分页插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactI...

u014141841的博客 1249

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SSM框架整合PageHelper实现分页功能

前言 ssm框架整合请看我的博客,超级详细哦 然后附上源码链接 整合PageHelper实现分页功能 1.导入Mybatis分页插件依赖 <!--Mybatis 分页插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.

weixin_51542566的博客 898

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SSM框架中使用pageHelper插件实现分页查询

在SSM框架的项目中使用pageHelper插件实现分页查询 在项目的pom.xml中添加pagehelper安装依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifact...

qq_41379337的博客 5789

mybatis分页插件PageHelper的使用(ssm整合pagehelper)

mybatis分页插件的使用 1.回去mysql和oracle分页的区别 mysql分页语句 select * from table_name limit M,N 说明: (1)mysql的M,N只能数字,不能有括号和运算符,否则报错 (2)M,N表示第M条记录开始检索N条记录 oracle分页语句 select * from( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM DEMO ) A WHERE ROWNUM &l

java技术博客 1206

ssm使用pageHelper进行分页

ssm如何使用pagehelper进行分页 最近在写ssm分页的时候遇到了一些麻烦,在此记录一下,顺便总结一下ssm使用pageHelper的过程。 1.首先在配置文件中引入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId>

weixin_44357646的博客 1222

尚硅谷ssm整合实战项目笔记

前言 该笔记为尚硅谷SSM实战演练丨ssm整合快速开发CRUD学习笔记 github项目地址:https://github.com/xjhqre/sgg-ssm-demo 一、SSM整合 1、项目介绍 使用SSM框架搭建出一套简单的CRUD项目示例,包括分页查询、Ajax请求、数据校验等。 2、功能点 分页查询 数据校验:JQuery前端校验+JSR-303后端校验 Ajax请求 REST风格的URI:GET查询、POST新增、DELETE删除、PUT修改 3、技术点 基础框架-SSM(Sprin

xjhqre的博客 9083

【SSM】手动SQL分页和PageHelper插件分页

书接上回: 【SSM】SSM整合与运行流程 上文实际上是做了一个CRUD中的查询操作,将数据库中的数据全部显示在网页上。 1 手动SQL分页 即在SQL语句中加上limit关键词,获取分页的数据 1.1 准备分页工具Page类 Page.java package util; public class Page { // start为一个页面起始下标,第一页中第一条记录的下标为0 int start = 0; // count为一个的记录数 int count = 5;

Awt_FuDongLai的博客 3579
上一篇: SSM整合实例--(一)项目搭建
下一篇: SSM整合实例--(三)CRUD操作
Double____C
博客等级 码龄8年 92粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值