关键词:
springboot 整合Mybatis-Plus分页、自动填充功能功能
此次分页、自动填充功能的实现是在Spring Boot整合 druid、Mybatis-plus实现的基础上完成的,包括数据源配置、各种依赖添加、mapper和service的实现。不在重复记录。
Java开发手册要求数据表必须要有三个字段:id字段:自动生成;createtime:记录添加的时间;modifyTime:记录修改的时间。因此可以使用自动填充功能实现后两个字段生成。
1 创建分页插件配置类
在包dzxx.crud.config中创建分页插件配置类:MybatisPlusConfig,并修改数据库的类型。然后添加@configuration和@mapperScan注解,
package dzxx.crud.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
//扫描路径为StuMapper文件的路径
@MapperScan("dzxx.crud.repository")
public class MybatisPlusConfig
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor()
MybatisPlusInterceptor interceptor=new MybatisPlusInterceptor();
//分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
2 创建分页实体类。
在dzxx.crud.pojo包中创建分页实体类StuVo,存储分页的结果。
package dzxx.crud.pojo;
import lombok.Data;
import java.util.List;
//分页实体类,
@Data
public class StuVo
private Integer current; //当前页
private Integer size; //每一页的数量
private Long total; //总数
private List<Stu> stuList; //每一页的内容
public StuVo(Integer current, Integer size, Long total, List<Stu> stuList)
this.current = current;
this.size = size;
this.total = total;
this.stuList = stuList;
public StuVo()
3 修改Stu实体类的。给createtime和modifytime属性的添加@TableField注解。
package dzxx.crud.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
@Data
@TableName(value = "stu")
public class Stu
.。。。。。。
//mybatis-plus自动填充功能
//1,使用注解填充字段生成策略,告知Mybatis-Plus需要预留注入SQL字段
//2.自定义类component-》MyMetaObjectHandler实现接口MetaObjectHandler中的insertFill和updateFill方法
//创建时间:希望在添加数据的时候填充:当前时间
@TableField( fill=FieldFill.INSERT)
private Date currenttime;
//修改时间:希望在添加、修改数据的时候填充:当前时间
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date modifytime;
。。。。。
4 创建自定义类component-》MyMetaObjectHandler实现接口MetaObjectHandler中的insertFill和updateFill方法
package dzxx.crud.component;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
// 填充处理器MyMetaObjectHandler在 Spring Boot 中需要声明@Component或@Bean注入
@Component
public class MyMetaObjectHandler implements MetaObjectHandler
@Override
public void insertFill(MetaObject metaObject)
//插入时:创建时间和修改时间
this.setFieldValByName("currenttime", new Date(), metaObject);
this.setFieldValByName("modifytime", new Date(), metaObject);
@Override
public void updateFill(MetaObject metaObject)
//修改时:修改时间
this.setFieldValByName("modifytime", new Date(), metaObject);
5 编写测试方法。服务层调用分页方法即可实现分页。
package dzxx.crud;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import dzxx.crud.pojo.Stu;
import dzxx.crud.pojo.StuVo;
import dzxx.crud.service.StuService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class CrudApplicationTests
@Autowired(required = false)
private StuService stuService;
@Test
void pagewithIservice()
int current=1;
int size=2;
IPage<Stu> iPage=new Page<>(current, size);
stuService.page(iPage);
StuVo stuVo=new StuVo();
stuVo.setCurrent(current);
System.out.println(iPage.getRecords());
System.out.println("总"+iPage.getTotal());
System.out.println("总页数"+iPage.getPages());
@Test
//添加记录,会自动生成添加时间和修改时间
void save()
Stu stu=new Stu(null,"jackson","2411",22);
stuService.save(stu);
System.out.println(stu);
4 测试结果如图所示
-----------------------------------------------------------------------~~~~ ----------------------
如何整合springboot+mybatis-plus(系列一)(代码片段)
如何整合springboot+mybatis-plus(系列一)背景整合springboot+mybatis-plus,其实就是整合springboot+mybatis+mybatis-plus,本来mybatis-plus就能自动包含mybatis步骤非常简单,用IDEA新建项目,选择Sprin 查看详情
springboot整合mybatis-plus分页自动填充功能(代码片段)
springboot整合Mybatis-Plus分页、自动填充功能功能此次分页、自动填充功能的实现是在SpringBoot整合druid、Mybatis-plus实现的基础上完成的,包括数据源配置、各种依赖添加、mapper和service的实现。不在重复记录。Java开发手册要求数... 查看详情
springboot整合mybatis-plus
springboot整合mybatis-plus简介mybatis增强工具包,简化CRUD操作。文档http://mp.baomidou.comhttp://mybatis.plus优点|Advantages无侵入:Mybatis-Plus在Mybatis的基础上进行扩展,只做增强不做改变,引入Mybatis-Plus不会对您现有的Mybatis构架产生任何影响... 查看详情
springboot整合mybatis-plus实现分页查询(建议收藏)(代码片段)
一、前言 最近学习了SpringBoot分页查询的两种写法,一种是手动实现,另一种是使用框架实现。现在我将具体的实现流程分享一下。二、手动实现分页查询 先复习一下,SQL中的limit关键字,下面一... 查看详情
springboot整合mybatis-plus+durid数据库连接池(代码片段)
...及项目搭建springboot整合之版本号统一管理 springboot整合mybatis-plus+durid数据库连接池springboot整合swaggerspringboot整合mybatis代码快速生成springboot整合之统一结果返回springboot整合之统一异常处理springboot整合之Validated参数校验 sprin... 查看详情
实践丨springboot整合mybatis-plus项目存在mapper时报错
摘要:在SpringBoot运行测试Mybatis-Plus测试的时候报错的问题分析与修复本文分享自华为云社区《SpringBoot整合MybatisPlus项目存在Mapper时运行报错的问题分析与修复》,作者:攻城狮Chova。异常信息在SpringBoot运行测试Mybat... 查看详情
第276天学习打卡(知识点回顾springboot整合mybatis-plus)
知识点回顾springboot整合Mybatis-plus自动配置MyBatisPlusAutoConfiguration配置类,MyBatisPlusProperties配置项绑定。mybatis-plus:xxx就是对mybatis-plus的定制SqlSessionFactory自动配置好,底层是容器中默认的数据源mapperLocations自动配置好的。有... 查看详情
springboot整合mybatis-plus
maven依赖注意:本文使用的是mysql,数据库依赖就不展示了<!--引入mvbatie-plusstarter--> <dependency> <groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><versi 查看详情
springboot使用druid与mybatis-plus整合(代码片段)
SpringBoot使用Druid与Mybatis-plus整合需要导入的依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependenc 查看详情
springboot2.x:整合mybatis-plus
简介Mybatis-Plus是在Mybatis的基础上,国人开发的一款持久层框架。并且荣获了2018年度开源中国最受欢迎的中国软件TOP5同样以简化开发为宗旨的SpringBoot与Mybatis-Plus放在一起会产生什么样的化学反应呢?下面我们来领略一下两者配... 查看详情
实践丨springboot整合mybatis-plus项目存在mapper时报错
...#xff0c;作者:攻城狮Chova。异常信息在SpringBoot运行测试Mybatis-Plus测试的时候报错:rg.springframework.beans.factory.UnsatisfiedDependencyException:Errorcreatin 查看详情
springboot整合mybatis-plus
1.添加pom引用maven的引用很简单,官方已经给出starter,不需要我们考虑它的依赖关系了,此处使用的是2.3版本。<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artif 查看详情
使用springboot+gradle快速整合mybatis-plus
作者:Stanley罗昊QQ:1164110146MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。注:作者使用IDEA编辑器使用SpringInitializr快速初始化一个SpringBoot工程在IDEA编辑左上角Fli... 查看详情
springboot整合mybatis-plus+druid组件,实现增删改查
前言本篇文章主要介绍的是SpringBoot整合mybatis-plus,实现增删改查。GitHub源码链接位于文章底部。建库建表创建springboot数据库,创建t_user表,字段id主键自增,name,age。工程结构添加依赖新建一个maven项目,在pom文件中添加以下依... 查看详情
springboot整合mybatis-plus逆向工程(代码片段)
MyBatis-Plus(简称MP)是一个?MyBatis?的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。官方文档代码生成器AutoGenerator是MyBatis-Plus的代码生成器,通过AutoGenerator可以快速生成Entity、Mapper、MapperXML、Service... 查看详情
springboot整合mybatis-plus(代码片段)
...用三、减少硬编码四、代码生成器写在前面 mybatis-plus顾名思义就是mybatis的增强工具。对于mybatis的功能只做扩展、不做改变。体现在内置的Mapper对CRUD进行了封装、只需要通过简单的配置即可实现增删改查操作。而不... 查看详情
springboot整合mongodb操作工具类仿mybatis-plus风格(代码片段)
以下是仿照mybatis-plus风格操作mongodb的增删改查的工具类以及使用示例 pom文件引入依赖<!--mongodb--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb< 查看详情
使用springboot简单整合springsecurity和mybatis-plus(代码片段)
1、概述SpringSecurity是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准。SpringSecurity是一个框架,致力于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Sprin... 查看详情