Spring Boot3整合MyBatis Plus

目录

1.前置条件

2.导坐标

3.配置数据源

4.mybatis-plus基础配置

5.配置mapper扫描路径

6.MyBatis Plus代码生成器整合

1.导坐标

2.编写代码生成逻辑

7.整合Druid连接池


1.前置条件

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

初始化教程:

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

2.导坐标

pom.xml:

         <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/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.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,当然不止这一个模板具体参阅官网

pom.xml:

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


}

运行即可。

7.整合Druid连接池

Spring Boot3整合Druid(监控功能)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/135738692

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/350546.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Halcon指定区域的形状匹配

Halcon指定区域的形状匹配 文章目录 Halcon指定区域的形状匹配1.在参考图像中选择目标2.创建模板3.搜索目标 在这个实例中&#xff0c;会介绍如何根据选定的ROI选择合适的图像金字塔参数&#xff0c;创建包含这个区域的形状模板&#xff0c;并进行精确的基于形状模板的匹配。最…

echarts-wordcloud词云

echarts-wordcloud是基于echarts的一个插件&#xff0c;所以我们要首先安装echarts包&#xff0c;然后再安装echarts-wordcloud的包&#xff0c;这里我的练习项目安装的版本&#xff1b;当然&#xff0c;你可以随意安装你需要的版本&#xff1b; “echarts”: “^5.3.3”, “ec…

PCB制板基础知识

一、PCB概念 PCB&#xff08;PrintedCircuitBoard&#xff09;&#xff0c;中文名称为印制电路板&#xff0c;又称印刷电路板、印刷线路板&#xff0c;是重要的电子部件&#xff0c;是电子元器件的支撑体&#xff0c;是电子元器件电气连接的提供者。由于它是采用电子印刷术制作…

前端工程化基础(一):Node模块化

Node模块化 Node.js是什么 官方定义&#xff1a;Node.js是一个基于V8 JavaScript引擎的JavaScript运行时的环境 Node.js基于V8引擎来执行 JavaScript代码&#xff0c;但是Node.js中不仅仅有V8 我们知道&#xff0c;V8可以嵌入到C应用程序中&#xff0c;因此无论是Chrome还是No…

Redis快的秘密,高性能设计epoll和IO多路复用探究

Redis快的原因&#xff0c;高性能设计epoll和IO多路复用探究 1、多路复用需要解决的问题 并发多客户端连接&#xff0c;在多路复用之前最简单和典型的方案&#xff1a;同步阻塞网络IO模型 这种模式的特点就是用一个进程来处理一个网络连接&#xff08;即一个用户请求&#x…

windows 下docker-compose 试玩 paperlsess

第一步安装&#xff1a;&#xff08;假设docker-compose已安装好&#xff09; 下载 docker-compose.yml &#xff0c;docker-compose.env: github下载地址 在docker-paperless.env增加环境变量,设置管理员账户信息&#xff1a; PAPERLESS_ADMIN_USER: admin PAPERLESS_ADMIN_P…

分页查询的使用

背景 在业务中我们在前端总是需要展示数据&#xff0c;将后端得到的数据进行分页处理&#xff0c;通过pagehelper实现动态的分页查询&#xff0c;将查询页数和分页数通过前端发送到后端&#xff0c;后端使用pagehelper&#xff0c;底层是封装threadlocal得到页数和分页数并动态…

[Linux基础开发工具---vim]关于vim的介绍、vim如何配置及vim的基本操作方法

一、vim及其三种模式的简单介绍 Vim是一个类似于Vi的文本编辑器&#xff0c;不同的是vim是vi的升级版本&#xff0c;它不仅兼容vi的所有指令&#xff0c;而且还有一些新的特性在里面,如多级撤销、多窗口操作、崩溃后也可以恢复、增加了稳定性、关键字自动补全、上下文自动补全等…

力扣1143. 最长公共子序列

动态规划 思路&#xff1a; 假设 dp[i][j] 是 text1[0:i] 和 text2[0:j] 最长公共子序列的长度&#xff1b;则 dp[0][j] 0&#xff0c;&#xff08;空字符串和任何字符串的最长公共子序列的长度都是 0&#xff09;&#xff1b;同理 dp[i][j] 0&#xff1b;状态转移方程&…

List使用addAll()方法报错

当使用Arrays.asList方式创建出来的list&#xff0c;在使用addAll方法的时候报错如下&#xff1a; Exception in thread "main" java.lang.UnsupportedOperationException 这个问题记录下&#xff0c;以防以后忘记。 下面是代码 List<String> objects new A…

股票交易维度和概念

股票&#xff1a;股份公司为筹集资金而发行给各个股东作为持股凭证并借以取得股息和红利的一种有价证券 好处&#xff1a;分红、送股配股、交易收益、本金少、易变现、避免货币贬值 金融标的投资风险与收益 股票分类 蓝筹股 经营业绩长期稳定增长的大公司&#xff0c;一般是…

【C++】入门基础

前言&#xff1a;C是在C的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库&#xff0c;以及编程范式等。熟悉C语言之后&#xff0c;对C学习有一定的帮助&#xff0c;因此从今天开始们将进入&#xff23;的学习。 &#x1f496; 博主CSDN主页:…

Java如何对OSS存储引擎的Bucket进行创建【OSS学习】

在前面学会了如何开通OSS&#xff0c;对OSS的一些基本操作&#xff0c;接下来记录一下如何通过Java代码通过SDK对OSS存储引擎里面的Bucket存储空间进行创建。 目录 1、先看看OSS&#xff1a; 2、代码编写&#xff1a; 3、运行效果&#xff1a; 1、先看看OSS&#xff1a; 此…

老师打学生违法吗该怎么处理

老师打学生&#xff1a;一个需要深入探讨的敏感话题。老师&#xff0c;肩负着教书育人的重任&#xff0c;面对学生的时候&#xff0c;法律、职业道德和个人修养常常需要我们做出权衡。那么&#xff0c;当老师打了学生这一行为发生时&#xff0c;我们该如何看待和处理呢&#xf…

蓝桥杯备战——6.串口通讯

1.分析原理图 由上图我们可以看到串口1通过CH340接到了USB口上&#xff0c;通过串口1我们就能跟电脑进行数据交互。 另外需要注意的是STC15F是有两组高速串口的&#xff0c;而且可以切换端口。 2.配置串口 由于比赛时间紧&#xff0c;我们最好不要去现场查寄存器手册&#x…

HCIP-BGP实验

实验拓扑 实验需求 1.r1上有两个换汇分别为192.168.1.0/24和192.168.2.0/24只允许学到汇总和1.0 2.r7上有两个还回172.16.1.0/24和172.16.2.0/24要求全部宣告&#xff0c;但是只有2.0可以通过 3.全网可达 实验思路 配置IP地址 BGP配置 实验步骤 配置IP地址 BGP配置 在…

驱动开发-系统移植

一、Linux系统移植概念 需要移植三部分东西&#xff0c;Uboot ,内核 &#xff0c;根文件系统 &#xff08;rootfs&#xff09; &#xff0c;这三个构成了一个完整的Linux系统。 把这三部分学明白&#xff0c;系统移植就懂点了。 二、Uboot uboot就是引导程序下载的一段代…

力扣hot100 轮转数组 一题多解 翻转数组

Problem: 189. 轮转数组 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public void rotate(int[] nums, int k){int n nums.length;k k % n;reverse(…

[C++开发 02_3/5 _ C++中函数(95)]

知识点3&#xff1a;函数提高 3.1函数默认参数 3.2函数占位参数 3.3函数重载 3.1.1函数重载概述 3.1.2函数重载注意事项 引用作为重载条件 函数重载碰到默认参数

一个新的springboot-vue项目如何启动起来

一个新的springboot-vue项目如何启动起来 1.导入mysql 打开yml文件修改数据库密码 名称 用户名 2.打开pom.xml配置maven依赖 尽量换成自己使用过的版本号&#xff0c;或者打开中央仓库搜索相关内容版本号&#xff1a;https://central.sonatype.com/ 注解为黄色 说明工程…
最新文章