小工具知识网

当前位置: 首页 > 行业知识 > Spring Boot3整合MyBatis Plus

行业知识

Spring Boot3整合MyBatis Plus

2026-11-03 08:19:57 来源:互联网转载

⛰️个人主页:     蒾酒

系列专栏:《spring boot实战》

山高路远,行路漫漫,终有归途。


目录

1.前置条件

2.导坐标

3.配置数据源

4.mybatis-plus基础配置

5.配置mapper扫描路径

6.配置分页拦截器

7.MyBatis Plus代码生成器整合

1.导坐标

2.编写代码生成逻辑

8.整合Druid连接池


1.前置条件

已经初始化好一个spring boot项目且版本为3X,项目可正常启动

初始化教程:

新版idea创建spring boot项目-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135785412?spm=1001.2014.3001.5501

2.导坐标

pom.xml:

                     com.baomidou            mybatis-plus-boot-starter            3.5.5                                                org.mybatis                    mybatis-spring                                                        org.mybatis            mybatis-spring            3.0.3        

为何要排除掉mybatis plus整合好的mybatis依赖单独引入一个?

Spring Boot 3.2.2整合MyBatis-Plus 3.5.5依赖不兼容问题-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135723627?spm=1001.2014.3001.5501

3.配置数据源

application.yml:

spring:  datasource:      url:  jdbc:mysql://localhost:3306/test      username: root      password: 123456

4.mybatis-plus基础配置

application.yml:

#mp配置mybatis-plus:  configuration:    map-underscore-to-camel-case: true    #打印sql日志    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  global-config:    db-config:      #id自增类型配置      id-type: ASSIGN_ID      #逻辑删除字段配置      logic-delete-field: deleted      logic-not-delete-value: 0      logic-delete-value: 1    #控制台mybatis-plus标记    banner: true

5.配置mapper扫描路径

在启动类添加@MapperScan("com.mijiu.mapper")注解指定mapper文件夹

如果不加该注解则要在每个mapper接口添加@Mapper注解

此时可以成功启动项目

看到MyBatis Plus的banner说明到这里整合好了。

6.配置分页拦截器

注意:只有配置拦截器分页查询才会生效

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

7.MyBatis Plus代码生成器整合

官方文档:

代码生成器(新) | MyBatis-Plus (baomidou.com)https://baomidou.com/pages/779a6e/#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8

1.导坐标

第一个依赖是代码生成器

第二个是代码生成器所依赖代码生成模板velocity,当然不止这一个模板具体参阅官网

pom.xml:

                    com.baomidou            mybatis-plus-generator            3.5.5                            org.apache.velocity            velocity-engine-core            2.3        

2.编写代码生成逻辑

这里我写好demo了,需要修改的地方已经标记//TODO注释了

如果你的目录结构同作者类似,cv下面的demo修改一下//TODO标注的配置运行即可

import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.baomidou.mybatisplus.generator.FastAutoGenerator;import java.util.*;/** * @author mijiupro */public class CodeGenerator {    public static void main(String[] args) {        getCode();    }    public static void getCode() {        //TODO 修改为自己的数据库信息        String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai";        String username = "root";        String password = "123456";        //TODO 修改为自己的表名        List tables = List.of("user");//需要生成对应代码的表名的集合        FastAutoGenerator.create(url, username, password)                //全局配置----------------------------------------------------------------------------------------                .globalConfig(builder -> {                    builder                            .author("蒾酒")//TODO 修改为自己名称                            .outputDir(System.getProperty("user.dir") + "\src\main\java")// 输出路径(写到java目录)                            // .enableSwagger() //开启swagger,会自动添加swagger相关注解                            .commentDate("yyyy-MM-dd");//日期格式                })                //包名配置--------------------------------------------------------------------------------------------                .packageConfig(builder ->                    builder.parent("com.mijiu")//TODO 修改为自己项目的路径                            // .moduleName("practice")//模块名,设置该项会在输出路径上增加一层模块名目录                            .entity("entity")                            .service("service")                            .serviceImpl("service.impl")                            .controller("controller")                            .mapper("mapper")                            .xml("mapper/xml")                )                //策略配置-----------------------------------------------------------------------------------------                .strategyConfig(builder -> {                    builder                            .addInclude(tables)// 需要生成代码对应的表,若需要生成全部表则注释该行解放下一行                            // .addInclude("all")//生成全部表                            // .addTablePrefix("p_")//表前缀过滤,例如“p_”开头的表不会生成对应代码                            //实体策略配置                            .entityBuilder()                            .enableFileOverride()// TODO 开启覆盖已生成的entity文件,关闭则注释本行                            .enableLombok()// 自动添加lombok注解@Getter @Setter                            .logicDeleteColumnName("deleted")// 指定逻辑删除字段名自动为其添加逻辑删除字段注解                            .enableTableFieldAnnotation()//启用表字段注解@TableField                            //Mapper策略配置                            .mapperBuilder()                            .enableBaseResultMap() // 生成通用的resultMap                            .superClass(BaseMapper.class)                            .formatMapperFileName("%sMapper")//mapper文件后缀,如UserMapper                            // .enableFileOverride()// TODO 开启覆盖已生成的mapper文件,关闭则注释本行                            .formatXmlFileName("%sMapper")//xml文件后缀,如UserMapper.xml                            //Service策略配置                            .serviceBuilder()                            // .enableFileOverride()//TODO 开启覆盖已生成的service文件,关闭则注释本行                            .formatServiceFileName("%sService")                            .formatServiceImplFileName("%sServiceImpl")                            //Controller策略配置                            .controllerBuilder()                            .enableHyphenStyle() // 映射路径使用连字符格式                            .formatFileName("%sController")                            // .enableFileOverride()// TODO 开启覆盖已生成的controller文件,关闭则注释本行                            .enableRestStyle();//启用rest风格自动添加@RestController                }).execute();    }}

运行即可。

8.整合Druid连接池

Spring Boot3整合Druid(监控功能)-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135738692

上一篇:fine英文谐音怎么读?

下一篇:揭秘应对欺骗的妙招,如何巧妙反击那些欺骗你的人!