SpringBoot3集成MyBatisPlus

介绍

使用SpringBoot3集成MyBatisPlus,进行项目开发。这里分XX进行整合。

第一步:创建SpringBoot3项目

创建项目时选择MySQL和Web的依赖。作者在这里使用的SpringBoot版本是3.2.4

第二步:添加MybatisPlus相关依赖

<!--mybatis-plus-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.5</version>
</dependency>

第三步:创建MybatisPlus配置类

package com.xiaoxi.officePark2024.config;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
@MapperScan("com.xiaoxi.officePark2024.system.mapper")
public class MybatisPlusConfig {/*** 添加分页插件*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//如果配置多个插件,切记分页最后添加interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());//配置乐观锁插件return interceptor;}
}

第四步:创建添加时间和修改时间自动填充类(可选)

package com.xiaoxi.officePark2024.config;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;import java.time.LocalDateTime;/*** MybatisPlus自动填充添加时间和修改时间*/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用)}@Overridepublic void updateFill(MetaObject metaObject) {this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)}
}

需要在字段上添加注解配置

/*** 添加时间*/
@TableField(fill = FieldFill.INSERT)
private Date addTime;
/*** 修改时间*/
@TableField(fill = FieldFill.UPDATE)
private Date updateTime;

第五步:application.yml添加数据库连接

spring:application:name: officePark2024# 数据库配置datasource:url: jdbc:mysql://127.0.0.1:3306/office_park_2024?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=trueusername: rootpassword: 666666

第六步:配置代码生成器(可选)

添加依赖

<!--mybatis-plus代码生成器-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.5</version>
</dependency>
<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.32</version>
</dependency>

添加生成代码

下面代码作者是在maven项目的test包下创建的。

package com.xiaoxi.officePark2024;import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.sql.Types;
import java.util.Collections;public class CodeGenerator {public static void main(String[] args) {String outputDir = "/Users/mac/gitee/office-park-2024/src/main/java";String mapperOutputDir = "/Users/mac/gitee/office-park-2024/src/main/resources/mapper";FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/office_park_2024", "root", "666666").globalConfig(builder -> {builder.author("xiaoxi") // 设置作者
//                            .enableSwagger() // 开启 swagger 模式.disableOpenDir()
//                            .fileOverride() // 覆盖已生成文件.outputDir(outputDir); // 指定输出目录}).dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {int typeCode = metaInfo.getJdbcType().TYPE_CODE;if (typeCode == Types.TINYINT) {// 自定义类型转换return DbColumnType.INTEGER;}return typeRegistry.getColumnType(metaInfo);})).packageConfig(builder -> {builder.parent("com.xiaoxi.officePark2024") // 设置父包名.moduleName("system") // 设置父包模块名.pathInfo(Collections.singletonMap(OutputFile.xml, mapperOutputDir)); // 设置mapperXml生成路径}).strategyConfig(builder -> {builder.addInclude("op_park") // 设置需要生成的表名.addTablePrefix("sys_", "c_"); // 设置过滤表前缀builder.entityBuilder().enableLombok();}).templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}
}

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

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

相关文章

Linux 常用命令之 split

概述 在Linux系统中&#xff0c;split是一个非常实用的命令行工具&#xff0c;用于将一个大文件分割成多个小文件。这对于处理大型日志文件或备份大文件时非常有用。split命令提供了多种选项&#xff0c;允许用户根据文件大小或行数来分割文件。 一、split命令的基本用法 sp…

MySQL之高可用性和应用层优化(一)

高可用性 故障转移和故障恢复 在应用中处理故障转移 有时候让应用来处理故障转移会更加简单或者更加灵活。例如&#xff0c;如果应用遇到一个错误&#xff0c;这个错误外部观察者正常情况下是无法察觉的&#xff0c;例如关于数据库损坏的错误日志信息&#xff0c;那么应用可…

解决mybastis-plus加入逻辑删除SQL语句自动拼接未删除的问题

配置逻辑删除 在bootstrap.yaml中加入逻辑删除配置 mybatis-plus:global-config:db-config:logic-delete-field: isDeleted # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)logic-delete-value: true # 逻辑已删除值(默认为 1)logic-not-delete-value: …

Redis学习(12)|使用Redis在Spring Boot中实现分布式锁

文章目录 使用场景优缺点优点缺点 注意事项实现步骤1. 添加依赖2. 配置Redis连接3. 实现分布式锁逻辑3.1 创建Redis配置类3.2 创建RedisLock类3.3 使用RedisLock实现分布式锁 最佳实践 Hello大家好&#xff0c;我是阿月&#xff0c;坚持学习&#xff0c;老年痴呆追不上我&#…

Hugging Face发布重量级版本:Transformer 4.42

Hugging Face 宣布发布Transformer 4.42&#xff0c;该版本为流行的机器学习库带来了许多新功能和增强功能。此版本引入了几个高级模型&#xff0c;支持新工具和检索增强生成 &#xff08;RAG&#xff09;&#xff0c;提供 GGUF 微调&#xff0c;并整合了量化的 KV 缓存&#x…

基于协同过滤的航空票务推荐系统的设计与实现(飞机票推荐系统)

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

Android Studio 解决AAPT: error: file failed to compile

1.找到项目下的build.gradle 2.在android语块中添加下面代码 aaptOptions.cruncherEnabled false aaptOptions.useNewCruncher false 12

【数据结构】栈和队列-相互实现OJ题

前言&#xff1a; 本题目是关于栈和队列的OJ题目&#xff0c;需对栈和队列有一定了解再进行做题&#xff0c;若不了解可以根据我之前这篇文章进行学习&#xff1a;【数据结构】栈和队列-CSDN博客,题中需要的栈和队列的实现也在该文章中有源代码 目录 前言&#xff1a; 一.用…

探索WebKit的Flexbox奇境:CSS Flexbox支持全解析

探索WebKit的Flexbox奇境&#xff1a;CSS Flexbox支持全解析 在现代网页设计中&#xff0c;响应式布局的需求日益增长&#xff0c;CSS Flexbox作为布局模式的一个突破性进展&#xff0c;提供了一种更加高效和灵活的方式来设计复杂的用户界面。WebKit&#xff0c;作为众多流行浏…

在Ubuntu 16.04上安装和配置Nextcloud的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 Nextcloud 是 ownCloud 的一个分支&#xff0c;是一个文件共享服务器&#xff0c;允许您将个人内容&#xff08;如文档和图片&…

怎样将word默认Microsoft Office,而不是WPS

设置——>应用——>默认应用——>选择"word"——>将doc和docx都选择Microsoft Word即可

面试题-Spring家族与SpringIOC

1.spring家族的介绍 Spring简单图&#xff1a; 2.IOC原理 IOC就是原先代码里需要开发者实现对象的创建和关系依赖&#xff0c;反转交给SpringIOC容器管理对象的生命周期和对象之间的依赖关系。 依赖注入的方式&#xff1a; Setter&#xff1a;实现特定属性的public sette…

酱酒特点标准术语

酱酒的独特风味可以通过一系列专业的标准术语进行描绘&#xff0c;这些术语不仅包括了酱酒的香气和口感&#xff0c;还涵盖了对酱酒的深度品鉴知识。以下是酱酒亮哥收集的一些关键的酱酒特性标准术语&#xff1a; 酱香显著&#xff1a;这是酱香型白酒的香气特征&#xff0c;表…

Evented PLEG: iSulad 稳态 CPU 利用率降低30%的关键特性

背景 容器技术在不断发展的过程中&#xff0c;已被广泛应用于多种场景。OpenAtom openEuler&#xff08;简称"openEuler"&#xff09; 社区容器引擎项目 iSulad[1]面向 CT、IT 领域的不同需求而生&#xff0c;它具有轻量级、高性能的特点&#xff0c;可以在资源受限…

[C++11] noexcept 完整解析

说明&#xff1a;noexcept是C11标准引入的一个关键字&#xff0c;用于指示一个函数是否被保证不会抛出异常。如果但从设计角度看会感觉很奇怪&#xff0c;明明是有问题才抛出异常&#xff0c;那为什么还是在某些时候禁止抛异常呢&#xff1f;接下来我们了解下C11 为什么引入了 …

高性能LDO电路设计,有配套文档

内容&#xff1a; 1、电路文件&#xff08;有仿真状态&#xff09;和PDK&#xff08;TSMC180&#xff09; 2、配套仿真结果文档讲解6页 3、参考资料三篇 指标&#xff1a; LDO 温度系数1.09ppm LDO 环路增益在 64.3dB&#xff0c;相位裕度在 66&#xff0c;系统稳定。 LDO 最大…

【问题】升级指定conda虚拟环境的python到指定版本

1 背景 当前conda环境的名字为python38,进入环境python38命令如下: conda activate python38 2 升级python到3.10版本 conda install python=3.10 3 查看python版本 conda list -n python38 python

技术派Spring事件监听机制及原理

Spring事件监听机制是Spring框架中的一种重要技术&#xff0c;允许组件之间进行松耦合通信。通过使用事件监听机制&#xff0c;应用程序的各个组件可以在其他组件不直接引用的情况下&#xff0c;相互发送和接受消息。 需求 在技术派中有这样一个需求&#xff0c;当发布文章或…

Linux驱动入门-最简单字符设备驱动

一、字符设备驱动概念 1. 什么是字符设备驱动&#xff1f; 字符设备是 Linux 驱动中最基本的一类设备驱动&#xff0c;按字节流进行读写操作&#xff0c;数据读写有先后顺序。常见的字符设备包括LED灯、按键、IIC、SPI、LCD等。字符设备驱动就是为这些设备编写的驱动程序。 …

ollama,springAi实现自然语言处理

ollama安装使用&#xff1a; https://ollama.com/ 下载速度比较慢的可以直接使用以下版本0.1.41 https://pan.baidu.com/s/1hCCkYvFjWqxvPyYA2-YElA?pwdotap 直接管理员身份双击安装&#xff0c;安装成功后会在任务栏里出现这个小图标&#xff1a; 打开cmd&#xff0c;输入…