Spring Boot3.2.2整合MyBatis Plus3.5.5

2024-01-22 09:04

本文主要是介绍Spring Boot3.2.2整合MyBatis Plus3.5.5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.前置条件

2.导坐标

3.配置数据源

4.配置mapper扫描路径

5.MyBatis Plus代码生成器整合

1.导坐标

2.编写代码生成逻辑


1.前置条件

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

2.导坐标

         <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.5</version><exclusions><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version></dependency>

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

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

3.配置数据源

application.yml:

spring:datasource:url:  jdbc:mysql://localhost:3306/testusername: rootpassword: 123456

4.配置mapper扫描路径

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

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

此时可以成功启动项目

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

5.MyBatis Plus代码生成器整合

官方文档:

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

1.导坐标

第一个依赖是代码生成器

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

        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.5</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency>

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<String> 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();}}

运行即可。

这篇关于Spring Boot3.2.2整合MyBatis Plus3.5.5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/632503

相关文章

Spring Cloud Hystrix原理与注意事项小结

《SpringCloudHystrix原理与注意事项小结》本文介绍了Hystrix的基本概念、工作原理以及其在实际开发中的应用方式,通过对Hystrix的深入学习,开发者可以在分布式系统中实现精细... 目录一、Spring Cloud Hystrix概述和设计目标(一)Spring Cloud Hystr

springboot3.4和mybatis plus的版本问题的解决

《springboot3.4和mybatisplus的版本问题的解决》本文主要介绍了springboot3.4和mybatisplus的版本问题的解决,主要由于SpringBoot3.4与MyBat... 报错1:spring-boot-starter/3.4.0/spring-boot-starter-

Spring Boot整合消息队列RabbitMQ的实现示例

《SpringBoot整合消息队列RabbitMQ的实现示例》本文主要介绍了SpringBoot整合消息队列RabbitMQ的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录RabbitMQ 简介与安装1. RabbitMQ 简介2. RabbitMQ 安装Spring

springMVC返回Http响应的实现

《springMVC返回Http响应的实现》本文主要介绍了在SpringBoot中使用@Controller、@ResponseBody和@RestController注解进行HTTP响应返回的方法,... 目录一、返回页面二、@Controller和@ResponseBody与RestController

JAVA集成本地部署的DeepSeek的图文教程

《JAVA集成本地部署的DeepSeek的图文教程》本文主要介绍了JAVA集成本地部署的DeepSeek的图文教程,包含配置环境变量及下载DeepSeek-R1模型并启动,具有一定的参考价值,感兴趣的... 目录一、下载部署DeepSeek1.下载ollama2.下载DeepSeek-R1模型并启动 二、J

springboot rocketmq配置生产者和消息者的步骤

《springbootrocketmq配置生产者和消息者的步骤》本文介绍了如何在SpringBoot中集成RocketMQ,包括添加依赖、配置application.yml、创建生产者和消费者,并展... 目录1. 添加依赖2. 配置application.yml3. 创建生产者4. 创建消费者5. 使用在

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Java中有什么工具可以进行代码反编译详解

《Java中有什么工具可以进行代码反编译详解》:本文主要介绍Java中有什么工具可以进行代码反编译的相关资,料,包括JD-GUI、CFR、Procyon、Fernflower、Javap、Byte... 目录1.JD-GUI2.CFR3.Procyon Decompiler4.Fernflower5.Jav