首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ssm mysql实现分页

基础概念

SSM 是 Spring + Spring MVC + MyBatis 的集成框架,常用于 Java Web 开发。MySQL 是一种关系型数据库管理系统。分页是指将查询结果分成多个部分进行显示,以提高用户体验和系统性能。

优势

  1. 提高用户体验:用户可以快速查看所需信息,而不必加载整个数据集。
  2. 减轻服务器负担:分页减少了每次请求的数据量,降低了服务器的负载。
  3. 提高查询效率:数据库只需查询当前页的数据,提高了查询效率。

类型

  1. 物理分页:数据库层面进行分页,查询结果只包含当前页的数据。
  2. 逻辑分页:先查询所有数据,然后在应用层面进行分页。

应用场景

适用于数据量较大的情况,如电商网站的商品列表、新闻网站的文章列表等。

实现步骤

1. 配置 MyBatis 分页插件

首先,需要在 MyBatis 中配置分页插件,常用的插件有 PageHelper

代码语言:txt
复制
<!-- pom.xml -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.3.0</version>
</dependency>
代码语言:txt
复制
// MyBatis 配置文件
<plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <property name="helperDialect" value="mysql"/>
        <property name="reasonable" value="true"/>
    </plugin>
</plugins>

2. 编写 Mapper 接口和 XML 文件

代码语言:txt
复制
// UserMapper.java
public interface UserMapper {
    List<User> selectUsers();
}
代码语言:txt
复制
<!-- UserMapper.xml -->
<select id="selectUsers" resultType="User">
    SELECT * FROM users
</select>

3. 编写 Service 层

代码语言:txt
复制
// UserService.java
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public PageInfo<User> getUsers(int pageNum, int pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        List<User> users = userMapper.selectUsers();
        return new PageInfo<>(users);
    }
}

4. 编写 Controller 层

代码语言:txt
复制
// UserController.java
@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping
    public PageInfo<User> getUsers(@RequestParam int pageNum, @RequestParam int pageSize) {
        return userService.getUsers(pageNum, pageSize);
    }
}

常见问题及解决方法

1. 分页结果不正确

原因:可能是分页插件配置错误或查询语句有误。

解决方法:检查 MyBatis 配置文件中的分页插件配置,确保查询语句正确。

2. 分页查询速度慢

原因:可能是数据库索引不足或查询语句复杂。

解决方法:优化查询语句,添加合适的索引,使用数据库的分析工具进行性能调优。

3. 分页参数传递错误

原因:可能是前端传递的分页参数不正确。

解决方法:检查前端代码,确保传递的分页参数(如 pageNumpageSize)正确无误。

参考链接

PageHelper 官方文档

通过以上步骤,你可以实现 SSM + MySQL 的分页功能。如果遇到具体问题,可以根据错误信息和日志进行排查和解决。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SSM框架——实现分页和搜索分页

分页是Java Web项目常用的功能,昨天在Spring MVC中实现了简单的分页操作和搜索分页,在此记录一下。使用的框架为(MyBatis+SpringMVC+Spring)。...首先我们需要一个分页的工具类: 1.分页 import java.io.Serializable; /** * 分页 */ public class Page implements...return */ public long getProductsCount(@Param(value="userId") Integer userId); 接口定义完成之后需要编写相应的业务接口和实现方法...,在接口中定义这样一个方法,然后实现类中覆写一下: /** * 分页显示商品 * @param request * @param model * @param...使用GET方式传参),然后将其加入到SESSION中,即可完成查询分页(此处由于“下一页”这中超链接的原因,使用了不同的JSP页面处理分页和搜索分页,暂时没找到在一个JSP页面中完成的方法

1.8K40
  • 【mysql】limit实现分页

    分页 1. 背景: 背景1:查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢? 背景2:表里有 4 条数据,如果只想要显示第 2、3 条数据怎么办呢? 2....实现规则 分页原理 所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件。...MySQL中使用 LIMIT 实现分页 格式: LIMIT 位置偏移量, 行数 第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,将会从表中的第一条记录开始...10; --第11至20条记录: SELECT * FROM 表名 LIMIT 10,10; --第21至30条记录: SELECT * FROM 表名 LIMIT 20,10; 使用limit实现数据的分页显示...拓展 LIMIT 可以使用在MySQL、PGSQL、MariaDB、SQLite 等数据库中使用,表示分页。不能使用在SQL Server、DB2、Oracle中。

    3.8K60

    使用MySQL实现分页查询

    使用MySQL实现分页查询 本文关键字:MySQL、分页查询、真分页、假分页、LIMIT 在项目开发当中,经常要实现分页功能,在面试时也会经常被问到,什么是分页。...一、分页 ? 1. 什么是分页 一般在客户端实现分页功能的时候,要显示当前页的数据、当前所在页数、临近页面的按钮以及总页数等等。...这些数据随着翻页的进行能够动态的变化,为了实现这样的效果,一般会采取两种办法:真分页和假分页。这样的划分方式是从与数据库的交互方式出发的,是每次翻页时都进行查询还是一次性查出所有的数据。 2....假分页 假分页指的是对于要显示的数据一次性全部查出,一直存在在服务端或客户端,在前端进行分页或由服务端控制分页。将根据当前所在页来计算应该显示的数据所在下标,用循环取出目标数据。...二、MySQL实现分页 本文将介绍如何通过真分页的方式,每次取出所需数据。对于不同的数据,实现分页有不同的方式,在MySQL中可以使用LIMIT来限制查询出的数据。 1.

    17.3K52

    使用MySQL实现分页查询

    使用MySQL实现分页查询 本文关键字:MySQL、分页查询、真分页、假分页、LIMIT 文章目录 使用MySQL实现分页查询 一、分页 1. 什么是分页 2. 真分页 3. 假分页 4....缓存层 二、MySQL实现分页 1. LIMIT用法 2. 分页公式 在项目开发当中,经常要实现分页功能,在面试时也会经常被问到:什么是分页。...一、分页 1. 什么是分页 一般在客户端实现分页功能的时候,要显示当前页的数据、当前所在页数、临近页面的按钮以及总页数等等。...这些数据随着翻页的进行能够动态的变化,为了实现这样的效果,一般会采取两种办法:真分页和假分页。这样的划分方式是从与数据库的交互方式出发的,是每次翻页时都进行查询还是一次性查出所有的数据。 2....二、MySQL实现分页 本文将介绍如何通过真分页的方式,每次取出所需数据。对于不同的数据,实现分页有不同的方式,在MySQL中可以使用LIMIT来限制查询出的数据。 1.

    2.6K30

    MySQL实现批量Insert和分页查询

    一 : MySQL实现批量插入测试数据 方法:存储过程实现 在这之前先查看一下表结构 desc test;方便写插入语句: ?...VALUES(i,CONCAT('编号为:',i) ); set i = i + 1; end while; end $ 注:DELIMITER这个命令的用途,在MySQL...二 : MySQL实现分页查询 方法一:limit 就 两条语句: select count(*) from table : 查询得到记录总条数,便于决定分页。...这是最常见MYSQL最基本的分页方式,查询前10条数据,倒序就加上desc: select * from test order by test_id limit 0, 10; 在中小数据量的情况下,这样的...此时,我们可以通过另一种式:子查询的分页方式来提高分页效率,从第10条开始,查询10条,SQL语句如下: select * from test where test_id >= (select

    4.1K20

    SSM+Bootstrap+Redis+Mysql实现 商城购物系统

    一、整体框架介绍 1.1、背景 在学习 SSM 以及 Boostrap框架时,为了整合所学(微信支付、登录or支付宝支付等)知识,这个购物商城项目也就出现了...对于ssm初学者来说,应该比较适合练手学习...,可以根据自己想法进行功能扩展等... 1.2、整体架构图 目前项目基本实现的功能有,商城后端:用户登录、商品管理、商品类型管理、客户管理以及系统用户管理(订单管理功能后续有空实现...)...2.1、技术组合 数据库:Mysql 技术组合:Spring、SpringMvc、Mybatis、Redis、Jsp 前端框架:BootStrap3 Lombok 其它:HttpClient4.x、Google...ZXing 生成二维码、微信支付、支付宝沙箱模拟支付、聚合数据接口(短信)开发、文件上传 FTP 服务器等 三、开发环境 3.1、工具与环境 IDEA 2017.3.5 Maven 3 JDK8 Mysql...+Bootstrap+Redis+Mysql实现 商城购物系统 本文网址:

    87000

    JavaWeb之分页的实现——基于Mysql(通用)

    那么现在来一起看看他的思路以及代码还有效果图吧 基于MySql数据库的通用分页    通用分页核心思路:将上一次查询请求再发一次,只不过页码变了    实现步骤:    1)先查询全部数据     ...Junit测试     baseDao、CallBack    2)通用分页实现     pagebean 1....   后台查出来  pagination  是否分页    视图层传递过来 getStartIndex()        基于MySql数据库分页,获取分页开始标记    ---------...book.setBook_name(bookname); //创建PageBean PageBean pageBean=new PageBean(); pageBean.setRequest(req); //实现书本查询...+" limit "+pageBean.getStartIndex()+","+pageBean.getRows(); } }  //连接Mysql的代码: package com.zking.pagination.util

    1.5K30

    MySQL 百万级分页优化(Mysql千万级快速分页)

    By:jack Mysql limit分页慢的解决办法(Mysql limit 优化,百万至千万条记录实现快速分页) MySql 性能到底能有多高?...MySql 这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新闻的小型系统怎么写都可以,用xx框架可以实现快速开发。可是数据量到了10万,百万至千 万,他的性能还能那么高吗?...难道MySQL 无法突破100万的限制吗???到了100万的分页就真的到了极限??? 答案是: NO !!!! 为什么突破不了100万是因为不会设计mysql造成的。下面介绍非分表法,来个疯狂的测试!...完美解决了分页问题了。可以快速返回id就有希望优化limit , 按这样的逻辑,百万级的limit 应该在0.0x秒就可以分完。看来mysql 语句的优化和索引时非常重要的!...小小的索引+一点点的改动就使mysql 可以支持百万甚至千万级的高效分页! 通 过这里的例子,我反思了一点:对于大型系统,PHP千万不能用框架,尤其是那种连sql语句都看不到的框架!

    2.5K10

    MySQL 百万级分页优化(Mysql千万级快速分页)

    By:jack Mysql limit分页慢的解决办法(Mysql limit 优化,百万至千万条记录实现快速分页) MySql 性能到底能有多高?...MySql 这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新闻的小型系统怎么写都可以,用xx框架可以实现快速开发。可是数据量到了10万,百万至千 万,他的性能还能那么高吗?...难道MySQL 无法突破100万的限制吗???到了100万的分页就真的到了极限??? 答案是: NO !!!! 为什么突破不了100万是因为不会设计mysql造成的。下面介绍非分表法,来个疯狂的测试!...完美解决了分页问题了。可以快速返回id就有希望优化limit , 按这样的逻辑,百万级的limit 应该在0.0x秒就可以分完。看来mysql 语句的优化和索引时非常重要的!...小小的索引+一点点的改动就使mysql 可以支持百万甚至千万级的高效分页! 通 过这里的例子,我反思了一点:对于大型系统,PHP千万不能用框架,尤其是那种连sql语句都看不到的框架!

    3.7K30
    领券