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/testusername: rootpassword: 123456

4.mybatis-plus基础配置

application.yml:

#mp配置
mybatis-plus:configuration:map-underscore-to-camel-case: true#打印sql日志log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:#id自增类型配置id-type: ASSIGN_ID#逻辑删除字段配置logic-delete-field: deletedlogic-not-delete-value: 0logic-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.mzph.cn/news/648099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昂首资本闪耀石家庄交易技术峰会,尽释行业进取之姿

“2024年石家庄交易技术峰会”在中国河北石家庄举办&#xff0c;Anzo Capital昂首资本作为2024年交易峰会的独家赞助商出席本次活动&#xff0c;Anzo Capital 魄力超前&#xff0c;尽显行业进取之姿。 “开门红”——作为2024年的首场交易技术峰会&#xff0c;“石家庄交易技术…

幻兽帕鲁专用服务器设置,与好友畅玩

创建幻兽帕鲁服务器1分钟部署教程&#xff0c;阿里云和腾讯云均推出幻兽帕鲁服务器专属优惠服务器和部署教程&#xff0c;4核16G和4核32G配置可选&#xff0c;阿腾云atengyun.com分享1分钟自建幻兽帕鲁Palworld服务器教程&#xff0c;附阿里云和腾讯云专属幻兽帕鲁优惠价格表&a…

DAY10_SpringBoot—SpringMVC重定向和转发RestFul风格JSON格式SSM框架整合Ajax-JQuery

目录 1 SpringMVC1.1 重定向和转发1.1.1 转发1.1.2 重定向1.1.3 转发练习1.1.4 重定向练习1.1.5 重定向/转发特点1.1.6 重定向/转发意义 1.2 RestFul风格1.2.1 RestFul入门案例1.2.2 简化业务调用 1.3 JSON1.3.1 JSON介绍1.3.2 JSON格式1.3.2.1 Object格式1.3.2.2 Array格式1.3…

cocos creator 碰撞系统

设置碰撞组件 * 添加组件中添加碰撞组件 3种组件类型&#xff0c;矩形碰撞&#xff0c;圆形碰撞&#xff0c; 多边形碰撞 开启碰撞检测 start() {//开启碰撞管理器let cm cc.director.getCollisionManager()cm.enabled true//绘制碰撞检测边界线。用于调试cm.enabledDebug…

01 Redis的特性+下载安装启动

1.1 NoSQL NoSQL&#xff08;“non-relational”&#xff0c; “Not Only SQL”&#xff09;&#xff0c;泛指非关系型的数据库。 键值存储数据库 &#xff1a; 就像 Map 一样的 key-value 对。如Redis文档数据库 &#xff1a; NoSQL 与关系型数据的结合&#xff0c;最像关系…

GUN/Linux时间同步服务之chrony配置管理

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任&#xff0c;图解仅供参考&#xff0c;请悉知&#xff01;相关配置操作是在一个全新的演示环境下进行的&#xff0c;演示环境中没有任何有价值的数据&#xff0c;但这并不代表摆在你面前的环境也是如此。生产环境…

ICMP协议详解

ICMP&#xff08;Internet Control Message Protocol&#xff09;协议是一个网络层协议。 一个新搭建好的网络&#xff0c;往往需要先进行一个简单的测试&#xff0c;来验证网络是否畅通&#xff1b;但是IP协议并不提供可靠传输。如果丢包了&#xff0c;IP协议并不能通知传输层…

Java中Integer(127)==Integer(127)为True,Integer(128)==Integer(128)却为False,这是为什么?

文章目录 1.前言2. 源码解析3.总结 1.前言 相信大家职业生涯中或多或少的碰到过Java比较变态的笔试题&#xff0c;下面这道题目大家应该不陌生&#xff1a; Integer i 127; Integer j 127;Integer m 128; Integer n 128;System.out.println(i j); // 输出为 true System.o…

Unknown encoder ‘libmp3lame

环境&#xff1a; macos m1 &#xff0c; python3.10.x 背景 做视频切片&#xff0c; 使用moviepy 中VideoFileClip进行截取视频。 报错&#xff1a; Unknown encoder libmp3lameThe audio export failed because FFMPEG didnt find the specified codec for audio encoding …

【ARMv8M Cortex-M33 系列 7 -- RA4M2 移植 RT-Thread 问题总结】

请阅读【嵌入式开发学习必备专栏 】 文章目录 问题小结栈未对齐 经过几天的调试&#xff0c;成功将rt-thead 移植到 RA4M2&#xff08;Cortex-M33 核&#xff09;上&#xff0c;thread 和 shell 命令已经都成功支持。 问题小结 在完成 rt-thread 代码 Makefile 编译系统搭建…

Django开发_19_form表单前后端关联(1)

实例分析&#xff0c;过程使用URL反向解析知识&#xff1a; Django开发_12_URL反向解析、重定向-CSDN博客y 一、实例代码 (一)主路由urls.py: path("work4/", include("work4_app.urls",namespace"work4")), (二)app内urls.py: from djang…

利用大数据靶向肿瘤细胞的基因突变

在亚利桑那健康科学大学&#xff0c;研究人员正在应用大量数据&#xff0c;试图更多地了解这种突变、其变异以及任何可能有助于他们治疗患者的相关因素。 癌症的潜在原因很多&#xff0c;从食物和环境到创伤和感染。在遗传学方面&#xff0c;研究人员发现&#xff0c;有一种基因…

uniapp app更新

uniapp app更新 这个版本要随之增加&#xff0c;不然刚更新时直接用app, 新包增加的那些页面跳转会有问题&#xff0c;不能跳新的页面 //app更新检测 updataApp(){const that this;uni.showLoading({title:加载中...})plus.runtime.getProperty(plus.runtime.appid, functio…

解密:消息中间件的选择与使用:打造高效通信枢纽

目录 第一章&#xff1a;消息中间件介绍 1.1 什么是消息中间件 1.2 消息中间件的作用 1.3 消息中间件的分类 第二章&#xff1a;消息中间件的选择标准 2.1 性能 2.2 可靠性 2.3 可扩展性 2.4 易用性 2.5 社区支持 2.6 成本 第三章&#xff1a;常见的消息中间件对比…

解决 [Vue warn]:Avoid mutating a prop directly 警告

错误信息 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “xxx” 错误原因 所有的 prop 都使得…

蓝桥杯备战——3.定时器前后台

1.STC15F2k61S2的定时器 阅读STC15系列的手册&#xff0c;我们可以看到跟STC89C52RC的定时器还是有不同之处的&#xff1a; 由上图可以看到我们可以通过AUXR寄存器直接设置定时器的1T/12T模式了 在定时器0/1模式上也可以设置为16位自动重装载。 另外需要注意IAP15F2K61S2只有…

nvm安装的node,脚手架安装 vue 项目时报错

npm install -g vue/cli 时报错 解决办法 //修改npm的资源镜像: npm config set registry http://registry.npm.taobao.org重新脚手架安装 npm install -g vue/cli成功到下一步&#xff0c;当执行&#xff1a;vue create my-vue-demo时又报新的错 原因&#xff1a;【HTTPS …

part2. jdk9/10/11/12/16新特性详解

1.jdk9 1.1 模块化机制 定义模块&#xff1a;module-info.java module com.newfeature.test {requires java.se;requires lombok;requires junit; }package com.newfeature.test;import java.lang.reflect.Field;public class Main {public static void main(String[] args) …

Element UI样式修改之NavMenu导航菜单箭头样式修改

UI设计稿给的菜单箭头样式可能与我们饿了么组件NavMenu的菜单箭头样式不一致,目前我们侧边导航菜单的上下翻转箭头如下所示: 希望得到如下的结果: 找到饿了么Icon里我们想要向下箭头,F12后复制content内容content: “\e790”; content: "\e790";然后将默认的c…

C语言基本概念

目录 2.1 编写一个简单的C程序 2.1.1 编译和链接 2.1.2 集成开发环境 2.2 简单程序的一般形式 2.2.1 指令 2.2.2 函数 2.2.3 语句 2.3 注释 2.4 变量和赋值 2.4.1 类型 2.4.2 声明 2.4.3 赋值 2.4.4 显示变量的值 2.4.5 初始化 2.4.6 显示表达式的值 2.5 读入…