springboot3.x集成mybatis-plus代码生成工具

【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 阅读详情
AI摘要

博客主要介绍了在Java开发中,添加MyBatis-Plus和代码生成器相关依赖包的操作,以及代码生成工具类的相关内容,聚焦于利用MyBatis-Plus进行代码生成的信息技术操作。

一、添加mybatis-plus和代码生成器相关依赖包

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

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-support</artifactId>
            <version>2.3.3</version>
        </dependency>
        <!-- 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>
        </dependency>

二、代码生成工具类

package com.example.demo.mybatis.tool;

import java.sql.Types;
import java.util.Collections;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

/**
 * @author lidongyang
 * @date 2024/10/10 15:05
 * @since V1.0.0
 */
public class MysqlGenerator {



    public static void main(String[] args) {

        String url =
                "jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
        String username = "root";
        String password = "1234567";

        // 获取当前项目路径
        String projectPath = System.getProperty("user.dir");


        FastAutoGenerator.create(url, username, password)

                // 全局配置
                .globalConfig(builder -> {
                    builder
                            // .enableSwagger() // 是否启用swagger注解
                            .author("ldy") // 作者名称
                            .dateType(DateType.ONLY_DATE) // 时间策略
                            .commentDate("yyyy-MM-dd") // 注释日期
                            .outputDir(projectPath + "/src/main/java") // 输出目录
                            .disableOpenDir(); // 生成后禁止打开所生成的系统目录
                })
                // java和数据库字段的类型转换
                .dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
                    int typeCode = metaInfo.getJdbcType().TYPE_CODE;
                    if (typeCode == Types.SMALLINT || typeCode == Types.TINYINT) {
                        // 自定义类型转换
                        return DbColumnType.INTEGER;
                    }
                    return typeRegistry.getColumnType(metaInfo);

                }))

                // 包配置
                .packageConfig(builder -> {
                    builder.parent("com.example.demo") // 父包名
                            // .moduleName("task") // 模块包名
                            .controller("controller").entity("pojo.domain") // 实体类包名
                            .service("service") // service包名
                            .serviceImpl("service.impl") // serviceImpl包名
                            //.mapper("mapper") // mapper包名
                            .xml("mapper.xml").pathInfo(Collections.singletonMap(OutputFile.xml,
                                    projectPath + "/src/main/resources/mapper"))
                            .build();
                })

                // 策略配置
                .strategyConfig(builder -> {
                    builder.enableCapitalMode()// 驼峰
                            .enableSkipView()// 跳过视图
                            .disableSqlFilter()
                            // .addTablePrefix("t_") // 增加过滤表前缀
                            // .addTableSuffix("_db") // 增加过滤表后缀
                            // .addFieldPrefix("t_") // 增加过滤字段前缀
                            // .addFieldSuffix("_field") // 增加过滤字段后缀
                            .addInclude("table111") // 你的表名称

                            // Entity 策略配置
                            .entityBuilder().enableFileOverride().enableLombok() // 开启lombok
                            .enableChainModel() // 链式
                            .enableRemoveIsPrefix() // 开启boolean类型字段移除is前缀
                            .enableTableFieldAnnotation() // 开启生成实体时生成的字段注解
                            .versionColumnName("version") // 乐观锁数据库字段
                            .versionPropertyName("version") // 乐观锁实体类名称
                            .logicDeleteColumnName("delflag") // 逻辑删除数据库中字段名
                            .logicDeletePropertyName("delFlag") // 逻辑删除实体类中的字段名
                            .naming(NamingStrategy.underline_to_camel) // 表名 下划线 -》 驼峰命名
                            .columnNaming(NamingStrategy.underline_to_camel) // 字段名 下划线 -》 驼峰命名
                            .idType(IdType.ASSIGN_ID) // 主键生成策略 雪花算法生成id
                            .formatFileName("%s") // Entity 文件名称
                            // .addTableFills(new Column("create_time", FieldFill.INSERT)) // 表字段填充
                            // .addTableFills(new Column("update_time", FieldFill.INSERT_UPDATE)) // 表字段填充
                            // .enableColumnConstant()
                            // .enableActiveRecord()//MPlus中启用ActiveRecord模式,生成的实体类会继承activerecord.Model类,直接进行数据库操作

                            // Controller 策略配置
                            .controllerBuilder().enableFileOverride().enableHyphenStyle().enableRestStyle() // 开启@RestController
                            .formatFileName("%sController") // Controller 文件名称
                            // Service 策略配置
                            .serviceBuilder().enableFileOverride().formatServiceFileName("%sService") // Service 文件名称
                            .formatServiceImplFileName("%sServiceImpl") // ServiceImpl 文件名称

                            // Mapper 策略配置
                            .mapperBuilder().enableFileOverride().enableMapperAnnotation() // 开启@Mapper
                            .enableBaseColumnList() // 启用 columnList (通用查询结果列)
                            .enableBaseResultMap() // 启动resultMap
                            .formatMapperFileName("%sMapper") // Mapper 文件名称
                            .formatXmlFileName("%sMapper"); // Xml 文件名称
                }).templateEngine(
                        // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                        new FreemarkerTemplateEngine())
                .templateConfig(builder -> {
                    builder.controller("/templates/controller.java").service("/templates/service.java")
                            .serviceImpl("/templates/serviceImpl.java")
                            // .mapper()
                            .build();
                }).execute(); // 执行
    }

}

SpringBoot3整合Mybatis Plus3.5.3 mybatis plus已经支持springboot3.x了,官方目前最新版的是3.5.3,最新版的配置更简单了一些,闲话不说,直接开干。 阅读详情

相关推荐

【SpringBoot】SpringBoot3.X 兼容 mybatis-plus 解决全过程

最近闲来无事,将springboot 2.X 升级到 springboot 3.X,整个3.X的项目springboot 采用3.X后,结果出现各种问题,网上也是一堆的解决方案,可惜很多方案并不适合自己。

lxtx 3771

SpringBoot 集成MyBatis-Plus-Generator(最新版3.5.2版本)自动生成代码(附带集成MyBatis-Plus)

相信大家厌烦重复的造轮子过程,编写与数据库表对应的实体类,接着再进行创建各种层次的包(mapper,service,impl),而现在一款神器登场了,它就是:MpBatis-Plus的代码自动生成器。能够节约大部分时间,还能覆盖许多增删改查方法,加快我们的开发速度。

qq_58141314的博客 8815

Springboot里集成Mybatis-plus、ClickHouse

上一章节讲解在阿里云ECS centos服务器上安装ClickHouse。这一章节我们在Springboot里集成Mybatis-plus、ClickHouse。环境:JDK8 + Springboot 2.6.13 + ClickHouse。

Java 技术专栏,从入门到精通,熟悉企业级开发 4万+

Spring Boot中MyBatis-Plus代码生成器(三层架构简易代码生成)

Spring Boot中MyBatis-Plus代码生成器(三层架构简易代码生成)

qq_53762798的博客 1470

FCN---训练cityspaces

未经允许,不要随意转载! 最近想试试用FCN训练自己的数据集,想想标注是一件很费劲的事,于是就想到了用其他库里的数据,这里选用了cityspaces,默认已经配置好FCN. 1、下载cityspaces https://www.cityscapes-dataset.com/ 需要注册一个账号 cityspaces包含2...

wangyu088的专栏 2030

2021年J题:基于STM32F103的周期信号波形识别与参数测量系统设计(立创EDA+SZPT_ZXL)

本文详细复盘了2021年全国大学生电子设计竞赛J题获奖项目,手把手教你如何基于STM32F103微控制器设计并实现周期信号波形识别与参数测量系统。文章深入剖析了硬件电路设计(包括程控放大、工作点抬升与滞回比较器)与核心软件算法(如动态采样、FFT频谱分析与波形识别逻辑),并分享了DMA传输、FFT库使用等实战要点与避坑指南,为嵌入式信号处理与电赛备赛提供了宝贵经验。

weixin_32673065的博客 227

springboot+mybatis-plus代码自动生成

springboot+mybatis-plus自动代码生成

pengfeiffan的博客 635

网络可视化工具netron详细安装流程

netron安装目录1.netron 简介2.不同操作系统下的安装使用方式2.1 在线版本:只要有浏览器就可以2.2 不同操作系统安装使用3.netron支持的网络框架4.netron测试演示 1.netron 简介 在实际的项目中,经过会遇到各种网络模型,需要我们快速去了解网络结构。如果单纯的去看模型文件,脑海中很难直观的浮现网络的架构。 这时,就可以使用netron可视化工具,可以清晰的看到每一层的输入输出,网络总体的架构,而且支持各种不同网络框架,简单好用。 2.不同操作系统下的安装使用方式 2.1

江南研习社 12万+

Spring Boot使用Mybatis-plus插件自动生成代码

【代码】Spring Boot使用Mybatis-plus插件自动生成代码。

chao_1218的博客 1018

【提示学习代码】CoOp代码详读

CoOp是对CLIP的改进工作,主要是对prompt进行学习从而不用来手动设置prompt。自定义CLIP模型:上述两个模块结合而成的CLIP。文本编码器,接收文本的输入,并输出相应的编码表示。将图像和文本进行编码并计算它们之间的相似性。permute后变成了(4,2,3)Prompt学习器,用于学习生成提示。

weixin_51293984的博客 5815

不止于连接:用VS Code Remote-SSH深度开发树莓派(Ubuntu 22.04环境实战)

本文详细介绍了如何在Ubuntu 22.04环境下使用VS Code的Remote-SSH功能进行树莓派深度开发。通过SSH配置、VS Code扩展安装和远程环境优化,开发者可以在本地高效编写代码,同时在树莓派上直接运行和测试,解决性能瓶颈问题。文章还提供了高级功能如端口转发、多项目管理和远程调试的实战技巧。

didui8202的博客 352

Spring Boot3整合MyBatis Plus

⛰️个人主页: 蒾酒🔥系列专栏:《spring boot实战》目录1.前置条件2.导坐标3.配置数据源4.mybatis-plus基础配置5.配置mapper扫描路径6.配置分页拦截器7.MyBatis Plus代码生成器整合1.导坐标2.编写代码生成逻辑8.整合Druid连接池已经初始化好一个spring boot项目且版本为3X,项目可正常启动初始化教程:新版idea创建spring boot项目-优快云博客https://blog.csdn.net/qq_62262918/article/

蒾酒的博客 8941

Plant Simulation 快速建模与布局(3)——自动生成的对象 代码“安全”删除管理

《PlantSimulation快速布局建模课程》教授利用SimTalk语言实现高效建模的技术要点,包括批量对象创建、阵列布局、属性管理及自动连接功能。重点讲解对象安全删除机制,通过existsObject检查对象存在性后使用deleteObject方法删除,避免程序报错。课程提供完整代码示例,展示如何通过循环结构实现矩阵布局对象的创建与安全删除,确保代码健壮性,显著提升建模效率。

qq_31964455的博客 116

SpringBoot2.x 集成 Mybatis-Plus

本文主要对SpringBoot2.x集成Mybatis-Plus及其基本使用进行简单总结,其中SpringBoot使用的2.4.5版本。

RtxTitanV的博客 1910

QT应用编程: 编写低功耗BLE蓝牙调试助手(Android系统APP)

一、环境介绍 QT版本: 5.12.6 编译环境: win10 64位 目标系统: Android 完整工程源码下载地址(包含APK文件):https://download.csdn.net/download/xiaolong1126626497/19051696 二、功能介绍 本软件是一款BLE蓝牙串口调试助手,支持常规的发送和接收调试,BLE是低功耗类型蓝牙,在智能家居、物联网领域使用较多。BLE低功耗蓝牙一般不能直接使用手机进行连接,手机蓝牙默认都是工作在传统蓝牙模式,无法直接连接BL..

7654

FPGA SoC 的 RISC-V 固件开发全攻略(三):RISC-V MCU 启动流程深入解析

本文是《FPGA SoC 的 RISC-V 固件开发全攻略》专栏第 3 篇。上一篇:第 2 篇《开发环境搭建与工具链避坑》 | 下一篇:第 4 篇《RISC-V 与 ARM Cortex-M 开发差异对比》

XavierKong的博客 43

【springboot3.x 记录】解决 springboot3 集成 mybatis-plus 报 sqlSession 异常

解决当前 springboot3 集成 mybatis-plus 报 Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required 异常的处理方式

1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SpringBoot 集成 MyBatis/MyBatis-Plus 超详细教程

本文详细介绍了SpringBoot集成MyBatis和MyBatis-Plus的完整流程。首先回顾MyBatis核心组件及优缺点,然后逐步讲解SpringBoot整合MyBatis的配置步骤,包括数据源配置、Mapper扫描、XML映射等。接着重点介绍MyBatis-Plus的增强功能,如通用CRUD、条件构造器等,并演示如何通过继承BaseMapper快速实现数据操作。文章还涵盖了Lombok简化实体类、核心注解使用等实用技巧,帮助开发者高效构建持久层。通过对比两种方案,展示了MyBatis-Plus在简

A13549502743的博客 4232

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

《第05节》SpringBoot3之集成MyBatis Plus框架

本文介绍了如何在SpringBoot 3.x项目中集成MyBatis Plus持久层框架。首先需要引入适配SpringBoot 3.x的mybatis-plus-spring-boot3-starter依赖和MySQL驱动。然后创建测试数据库和表,配置数据库连接信息。接着演示了完整的MyBatis Plus开发流程:定义实体类、Mapper接口(继承BaseMapper)、Service层接口(继承IService)及实现类(继承ServiceImpl),最后创建Controller提供测试接口。文中还强调

✅ Java 开发工程师 1447

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: java实现根据延迟法定退休政策计算退休年龄
下一篇: springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)
咚咚阳丶
博客等级 码龄15年 1968粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值