SpringBoot集成MybatisPlus

本文旨在指导开发者如何将MybatisPlus迅速整合到SpringBoot项目中,以实现高效开发。介绍了配置类设定,包括分页配置和Mapper文件扫描路径,以及启用事务管理。同时,文章提及了属性自动填充功能,如创建时间和更新时间字段的自动管理,并展示了使用注解的方式。

前言

对于SpringBootMybatisMybatisPlus还不太熟悉的小伙伴,自行去研究,这里不做过多的解释。此文章主要为了方便在以后的开发过程当中,将MybatisPlus快速集成到SpringBoot项目当中来,到达快速开发的目的。

配置类

此配置主要是用来做分页配置的,默认最大分页500条,-1L分页大小无上限

@Configuration
@MapperScan(basePackages = "com.dulang.template.*.mapper")
@EnableTransactionManagement
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        PaginationInnerInterceptor innerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        innerInterceptor.setMaxLimit(-1L);
        mybatisPlusInterceptor.addInnerInterceptor(innerInterceptor);
        mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

@Configuration: 此类作为SpringBoot的配置类
@MapperScan(basePackages = “com.dulang.template.*.mapper”): Mapper文件扫描路径
@EnableTransactionManagement: 启用事务管理

属性自动填充

每张数据库表都会有创建时间、更新时间等字段,像这种字段可以设置自动填充。
填充规则
创建时间:在创建(即新增记录)的时候添加,以后都不会更改。
更新时间:在每次数据更新的时候更改。

@Component
public class AutoFillFieldHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime", new Date(), metaObject);
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
}

使用

在相应的字段上面添加以下注解即可

	// @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    // @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

依赖

<dependency>
	<groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
SpringBoot集成MyBatisPlus的完整步骤如下: 1. **初始化项目**:通过idea初始化一个SpringBoot项目,版本可以是2.7.1 [^5]。 2. **引入依赖**:添加必要的依赖,包括`mybatis-plus-boot-starter`(Mybatis Plus与Spring Boot整合所需)、`mysql-connector-java`(MySQL驱动),`lombok`是可选的,可简化Getter、Setter、构造注入等,简化代码 [^3][^5]。示例依赖配置如下: ```xml <!--mybatisplus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.2</version> </dependency> <!--mysql依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29</version> </dependency> ``` 3. **编写配置文件**:在配置文件中进行相关配置,例如Mysql数据源配置、MyBatisPlus的mapper位置、实体扫描等。示例配置如下: ```yaml spring: # Mysql数据源配置 datasource: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.33.129:3306/file?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true username: root password: 123456 mybatis-plus: mapper-locations: classpath*:/mapper/*/*Mapper.xml # 实体扫描,多个package用逗号或者分号分隔 typeAliasesPackage: com.wyh.demo global-config: db-config: id-type: auto ``` 4. **处理Mapper**:让mapper继承`BaseMapper`类,该类中已经集成了最常用的CRUD方法,无需配置xml文件。示例如下: ```java import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.springboot.mybatisPlus.entity.User; public interface UserMapper extends BaseMapper<User> { // 可以添加自定义方法 } ``` 5. **配置分页(可选)**:若需要MyBatisPlus提供的分页功能,需手动配置。示例如下: ```java import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @MapperScan("com.springboot.mybatisPlus.mapper*") public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值