【kalre 日常】MybatisPlus组件自动代码生成脚本

devtools/2024/10/21 3:00:14/

引用

        <!-- mybatis-plus依赖 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.2</version></dependency><!-- mybatis-plus代码生成 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.3.2</version></dependency><!-- 以上两个依赖版本号要一致 --><!-- MyBatis-Plus模板引擎 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version></dependency><!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>

自动生成脚本,修改变量即可,表名需要运行main方法后控制台录入

package com.disk.sys;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.apache.commons.lang3.StringUtils;import java.util.Scanner;public class GeneratorServiceEntity {private static String projectPath = System.getProperty("user.dir");// 数据库用户名,默认为rootprivate static String dbUsername = "root";// 数据库密码,默认为rootprivate static String dbPassword = "123456";// 作者名称,默认为当前用户名private static String authorName = "karle";// 项目包名private static String packageName = "com.disk.sys";// 数据库链接private static String dbUrl = "jdbc:mysql://localhost:3306/disk_sys?useUnicode=true&useSSL=false&characterEncoding=utf8";public static void main(String[] args) {boolean serviceNameStartWithI = false;//user -> UserService 设置成true: user -> IUserServicegenerateByTables(serviceNameStartWithI, packageName, "sysInfo"); /* 【必填】添加要生成的表可多个 */}private static void generateByTables(boolean serviceNameStartWithI, String packageName, String... tableNames) {GlobalConfig config = new GlobalConfig();DataSourceConfig dataSourceConfig = new DataSourceConfig();dataSourceConfig.setDbType(DbType.MYSQL).setUrl(dbUrl).setUsername(dbUsername)    /* 【必填】账号 */.setPassword(dbPassword)  /* 【必填】密码 */.setDriverName("com.mysql.cj.jdbc.Driver");StrategyConfig strategyConfig = new StrategyConfig();strategyConfig.setCapitalMode(true).setEntityLombokModel(true) // 实体是否为lombok模型(默认 false).setNaming(NamingStrategy.underline_to_camel)	// 命名法转换.setInclude(scanner("表名,多个英文逗号分割").split(","));config.setActiveRecord(false).setAuthor(authorName).setOutputDir(projectPath + "/src/main/java").setFileOverride(true);if (!serviceNameStartWithI) {config.setServiceName("%sService");}new AutoGenerator().setGlobalConfig(config).setDataSource(dataSourceConfig).setStrategy(strategyConfig).setPackageInfo(new PackageConfig()		/* 【选填】在这里可以修改生成各层的包名 */.setParent(packageName).setController("controller").setEntity("entity")).execute();}private void generateByTables(String packageName, String... tableNames) {generateByTables(true, packageName, tableNames);}// 扫描器方法,用于在运行时获取用户输入private static String scanner(String tip) {Scanner scanner = new Scanner(System.in);StringBuilder help = new StringBuilder();help.append("请输入" + tip + ":");System.out.println(help.toString());if (scanner.hasNext()) {String ipt = scanner.next();if (StringUtils.isNotBlank(ipt)) {return ipt;}}throw new MybatisPlusException("请输入正确的" + tip + "!");}
}

http://www.ppmy.cn/devtools/36629.html

相关文章

Gradle 进阶学习 之 build.gradle 文件

build.gradle 是什么&#xff1f; 想象一下&#xff0c;你有一个大型的乐高项目&#xff0c;你需要一个清单来列出所有的乐高积木和它们如何组合在一起。在软件开发中&#xff0c;build.gradle 就是这个清单&#xff0c;它告诉计算机如何构建&#xff08;组合&#xff09;你的软…

EtherCAT开发_4_分布时钟知识点摘抄笔记1

分布时钟 (DC&#xff0c;Distributed Cl ock) 可以使所有EtherCAT设备使用相同的系统时间&#xff0c;从而控制各设备任务的同步执行。从站设备可以根据同步的系统时间产生同步信号&#xff0c;用于中断控制或触发数字量输入输出。支持分布式时钟的从站称为 DC 从站。分布时钟…

初识Java

目录 Java语言概述 Java是什么 Java语言重要性 语言广泛使用程度 工作领域 在校招中的岗位需求 互联网的发展史 java集成开发环境 Java语言的特性 Java语言概述 Java是什么 Java是一种优秀的程序设计语言&#xff0c;它具有令人赏心悦目的语法和易于理解的语法 Java语…

LeetCode刷题记(五):121~150题

121. 买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从…

创建操作手册知识库的终极指南

在繁忙的工作中&#xff0c;有一个方便好用的操作手册知识库能帮我们节省大量时间&#xff0c;避免走弯路。那么&#xff0c;如何创建这样一个知识库呢&#xff1f;下面就给大家讲解一下简单易学的创建步骤。 一、明确目标与需求 在创建操作手册知识库之前&#xff0c;首先要明…

获取京东商品详情,API返回值说明全攻略

京东商品详情API是开发者获取京东平台上商品详细信息的重要工具。通过调用API并解析返回的响应数据&#xff0c;您可以快速获取商品的各项属性&#xff0c;如商品ID、标题、价格、图片等。下面&#xff0c;我们将为您详细介绍京东商品详情API的返回值说明&#xff0c;帮助您更好…

华为OD机试【求满足条件的最长子串的长度】(java)(100分)

1、题目描述 给定一个字符串&#xff0c;只包含字母和数字&#xff0c;按要求找出字符串中的最长&#xff08;连续&#xff09;子串的长度&#xff0c;字符串本身是其最长的子串&#xff0c;子串要求&#xff1a; 只包含1个字母(a-z, A-Z)&#xff0c;其余必须是数字&#xf…

五一反向旅游,景区“AI+视频监控”将持续助力旅游业发展

一、建设背景 每年五一劳动节出去旅游都是人挤人状态&#xff0c;这导致景区的体验感极差。今年“五一反向旅游”的话题冲上了热搜&#xff0c;好多人选择了五一之后再出去旅游&#xff0c;避开拥挤的人群&#xff0c;这个时候景区的监管力度和感知能力就更要跟上去&#xff0…