首页 > 其他分享 >MybatisPlus的分页插件简单使用

MybatisPlus的分页插件简单使用

时间:2024-08-08 23:28:33浏览次数:8  
标签:插件 MybatisPlus 分页 org import com Page

MyBatis-Plus 提供了强大的分页插件,可以方便地实现数据库查询结果的分页。

以下是关于 MyBatis-Plus 分页插件的详细介绍,包括如何配置和使用。

1. 添加依赖

首先,需要在项目中添加 MyBatis-Plus 和分页插件的相关依赖。使用 Maven,在 pom.xml 文件中添加:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.7</version>
</dependency>

2. 配置分页插件

在 Spring Boot 项目中,通常需要在配置类中添加分页插件配置。创建一个配置类来配置 MyBatis-Plus 分页插件。

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyBatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }
}

3. 使用分页插件

MyBatis-Plus 分页插件提供了 Page 类用于分页查询。可以在 Mapper 接口中使用分页查询方法,或者在 Service 层中进行调用。

示例:使用分页插件进行查询

假设有一个 User 实体类和对应的 Mapper 接口:

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {
    // 自定义分页查询方法
    Page<User> selectUserPage(Page<User> page);
}

在 Service 层中使用分页查询:

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public Page<User> getUserPage(int pageNum, int pageSize) {
        Page<User> page = new Page<>(pageNum, pageSize);
        return userMapper.selectPage(page, null);
    }
}

在 Controller 层中调用 Service 层方法进行分页查询:

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public Page<User> getUsers(@RequestParam int pageNum, @RequestParam int pageSize) {
        return userService.getUserPage(pageNum, pageSize);
    }
}

4. 配置分页插件属性

分页插件的一些常见配置项可以在 application.propertiesapplication.yml 中进行设置。

# application.properties
mybatis-plus.configuration.log-impl=STDOUT_LOGGING
mybatis-plus.global-config.db-config.id-type=auto

5. 处理分页查询参数

在分页查询中,可以通过 Page 类传递分页参数,如当前页码和每页记录数。分页插件会自动处理 SQL 查询,生成分页所需的 LIMITOFFSET

Page<User> page = new Page<>(1, 10); // 第1页,每页10条记录
Page<User> userPage = userMapper.selectPage(page, null);

总结

  1. 添加依赖:在项目中添加 MyBatis-Plus 和分页插件的依赖。
  2. 配置插件:在配置类中配置 MyBatis-Plus 分页插件。
  3. 使用分页:在 Mapper 和 Service 层使用 Page 类进行分页查询。
  4. 分页查询参数:通过 Page 类传递分页参数,插件会自动处理分页 SQL。

这样配置和使用 MyBatis-Plus 的分页插件可以方便地进行分页查询,并简化了分页处理的复杂性。

标签:插件,MybatisPlus,分页,org,import,com,Page
From: https://www.cnblogs.com/echohye/p/18349945

相关文章

  • MVC、三层架构、分页
    一、MVC什么是MVC?MVC全名是ModelViewController,是模型(Model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。最简单、......
  • DzzOffice 网盘插件的文件属性中显示文件位置、直链地址
    文件:dzz\explorer\template\ajax.htm在代码<!--{if$propertys[fdateline]}--><divclass="file-natureclearfix"><labelclass="col-md-4col-sm-4col-xs-4">{langcreate_time}</label><divclass=&......
  • DzzOffice系统与插件更新日志
    2024/07/23PDFTron1.支持将编辑后的PDF文件保存到Dzz中:实现了编辑与存储的无缝对接,简化了文件处理流程,减少了用户的操作步骤,提高了工作效率。2.对接Dzz的文件权限管理:用户在保存PDF文件时,可以自动应用DzzOffice中设置的文件权限规则。这意味着文件的查看、编辑、下载等权......
  • DzzOffice 新闻插件查看页面添加水印
    文件:\dzz\news\template\news_view.htm这里以显示用户名水印为示例<scripttype="text/javascript">//需要用到的地方调用就好watermark({watermark_txt:'$_G[username]'})functionwatermark(settings){//默认设置vardefaultSettings={......
  • 分页:Paginator
    提要:列表分页主要是明白:列表当前需要显示内容索引=(列表当前页数-1)*每页显示条数 至 列表当前页数*每页显示条数一、Django的内置分页Django内置的分页需要使用到3个类:Paginator、EmptyPage、PageNotAnInteger1.1Paginator介绍paginator=Paginator(全部数据,每页显示条......
  • 【YashanDB数据库】Mybatis-plus分页框架识别不到Yashandb
    问题描述Mybatis-plus无法识别Yashandb数据库,应用有如下报错。问题分析从Mybatis-plus源码里面看到,getDBtype函数是没有Yashandb的方言。当Yashandb使用mybatis-plus分页时候,会抛出异常即otherdatabasenotsupported。packagecom.baomidou.mybatisplus.extension.toolkit......
  • 一键翻译 | 分享一个更高级、更AI的翻译插件
    最近AutoGPT不是更新了嘛我也打算搭建一个来玩玩。不过呢,官方文档都是英文,阅读起来还是比较费劲的之前用的翻译插件实在难用,即卡而且翻译不准在网上找了一个新的AI翻译插件,发现贼好用,速度上很快,给大家分享一下安装安装是非常简单的网址打开:点击点击免费添加,直接安......
  • 泛微OA移动端在公网IP变更和无法打开Install.do界面下修改插件库地址(122,128报错)
    事情起因因为公司搬迁,公网IP变更,服务器搬迁时未提前调整好泛微oa服务器的IP,但是旧地址仍留有主路由可以使用。发现问题移动端无法正常连接,/install.do的界面也无法打开,无法进入修改插件库服务器IP的页面联系了技术,技术表示/install.do无法打开的话也无能为力(因为公司维护费断......
  • 由于分页,无法使用 python al beautifulsoup 在 tripadvisor 中获取所有结果
    我正在尝试获取餐厅的链接,但我只能获取前30家餐厅的链接,而无法获取所有其他餐厅的链接。马德里地区的餐馆有数百家,分页每页只显示30家,以下代码只获取这30家importreimportrequestsfromopenpyxlimportWorkbookfrombs4importBeautifulSoupasbcity_name='......
  • 最火的十大 Chrome 插件:安装指南、功能介绍及使用技巧
    最火的十大Chrome插件:安装指南、功能介绍及使用技巧Chrome插件能够显著提升我们的浏览器体验,从提高生产力到增强隐私保护,功能多种多样。以下是当前国内最火的十大Chrome插件,我们将为你提供详细的安装指南、功能介绍及使用技巧,并附上可访问的使用文档链接。1.AdBlock......