MyBatis-Plus分页插件详解以及MyBatisX插件

MyBatis-Plus的分页插件介绍

MyBatis-Plus的分页插件是一个功能强大的工具,它使得在MyBatis-Plus框架中实现分页查询变得简单而高效。

以下是对MyBatis-Plus分页插件的详细介绍:
功能特点
• 自动分页:分页插件能够自动处理分页逻辑,开发者无需手动编写分页SQL语句。
• 多数据库支持:插件支持多种数据库类型,包括MySQL、PostgreSQL、Oracle等,通过指定数据库类型( DbType ),插件能够生成适合特定数据库的分页SQL。
• 灵活配置:提供了多种配置项,如溢出总页数处理( overflow )、单页分页条数限制( maxLimit )等,以适应不同的业务需求。

配置分页插件

package com.nie.hellomp.config;

import com.baomidou.mybatisplus.annotation.DbType;
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 MPConfiguration {

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

分页插件的使用说明

构造分页对象

分页对象包含了分页的各项信息,其核心属性如下:

属性名描述
records查询数据列表
total查询列表总记录数
size每页显示条数,默认10
current当前页

分页对象既作为分页查询的参数,也作为分页查询的返回结果,当作为查询参数时,通常只需提供 current 和 size 属性

IPage<T> page = new Page<>(current, size);

测试service层的page案例

package com.nie.hellomp.page;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nie.hellomp.entity.User;
import com.nie.hellomp.mapper.UserMapper;
import com.nie.hellomp.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class PageTest {

    @Autowired
    private UserService userService;

    @Autowired
    private UserMapper userMapper;


    @Test
    public void testPageService(){
        IPage<User> userPage = new Page<>(2,4);
        IPage<User> page = userService.page(userPage);
        page.getRecords().forEach(System.out::println);
    }


}


测试结果如下
在这里插入图片描述

### 测试mapper层的page案例

package com.nie.hellomp.page;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nie.hellomp.entity.User;
import com.nie.hellomp.mapper.UserMapper;
import com.nie.hellomp.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class PageTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public  void testPageMapper(){
        IPage<User> userPage = new Page<>(2,3);
        IPage<User> page = userMapper.selectPage(userPage,null);
        page.getRecords().forEach(System.out::println);
    }


}

测试结果如下:
在这里插入图片描述
### 测试自定义的page案例
编写Mapper自定义方法

package com.nie.hellomp.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nie.hellomp.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {

    IPage<User> selectUserPage(IPage<User> page);
}

编写mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nie.hellomp.mapper.UserMapper">
    <select id="selectUserPage" resultType="com.nie.hellomp.entity.User">
        select * from user
    </select>
</mapper>

编写测试类

package com.nie.hellomp.page;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nie.hellomp.entity.User;
import com.nie.hellomp.mapper.UserMapper;
import com.nie.hellomp.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class PageTest {

    @Autowired
    private UserService userService;

    @Autowired
    private UserMapper userMapper;
    
    @Test
    public void  testCustomPage(){
        IPage<User> userPage = new Page<>(1,5);
        IPage<User> userIPage = userMapper.selectUserPage(userPage);
        userIPage.getRecords().forEach(System.out::println);
    }

}

测试效果如下:
在这里插入图片描述

MyBatisX插件介绍

MyBatisX 是一款专为 IntelliJ IDEA 设计的快速开发插件,旨在提升 MyBatis 与 MyBatis-Plus 框架的开发效率。以下是对 MyBatisX 插件的详细介绍:

核心功能

• XML 映射跳转:提供了便捷的 XML 映射文件与 Java 接口之间的跳转功能,让开发者能够快速地在两者之间切换,提高开发效率。

• 代码生成:通过 MybatisX,您可以轻松地根据数据库表结构生成对应的 Java 实体类、Mapper 接口及 XML 映射文件。

• 重置模板:允许您重置代码生成模板,以恢复到默认设置或自定义模板内容。

• JPA 风格提示:支持 JPA 风格的代码提示,包括新增、查询、修改和删除操作的自动代码生成。

功能详解

• Java 与 XML 调回跳转:在 DAO 层和对应的 XML 文件之间快速跳转,提高代码编写效率。

• Mapper 方法自动生成 XML:在 DAO 中写好对应方法后,按Alt+Enter选择自动生成就能自动在 XML 中生成对应的映射方法。

• 代码生成器:连接到数据库,选择表,右键选择 Mybatis-Generator,配置后自动生成 DAO、POJO 和 XML。

插件特点

• 节省开发时间:通过自动生成代码和 JPA 风格的代码提示,节省大量持久层代码开发时间。

• 强大的功能支持:为业务编写提供各类支持,如自动生成 SQL 实现等。

• 配置简单:告别各类复杂的配置文件,通过可视化配置简化开发流程。

兼容性

• 理论上兼容 Java SE、Maven、Gradle 等项目。

• 对 Maven 管理的 Spring Boot 项目适配较好。

社区反馈

• 作者会不定期修复插件的问题以及增加新的特性功能。

• 用户可以通过指定渠道反馈问题或提出功能诉求。

MyBatisX 插件通过提供代码生成、XML 映射跳转、JPA 风格提示等功能,极大地提高了使用 MyBatis 和 MyBatis-Plus 框架的开发效率,是 Java 开发者在 IntelliJ IDEA 中的得力助手。

安装MyBatisX

直接进入IDEA搜索MyBatisX
在这里插入图片描述

配置数据库

  1. 点击右上角的这个图标
    在这里插入图片描述

  2. 点击Data Source 然后点击MYSQL
    在这里插入图片描述

  3. 填写MYSQL信息
    在这里插入图片描述

  4. 点击应用 并且确定
    在这里插入图片描述

  5. 这样数据库就连接好了
    在这里插入图片描述
    在这里插入图片描述

直接生成代码

  1. 选择数据表 鼠标右键 点击第一个按钮
    在这里插入图片描述
  2. 配置实体类信息 配置完点击Next
    在这里插入图片描述
  3. 选择模板 配置完点击Finish
    在这里插入图片描述
  4. 这样我们的实习类 service层 mapper层 都自动生成好了
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值