首页 > 编程语言 >JavaUtils - [04] 代码生成器(新)

JavaUtils - [04] 代码生成器(新)

时间:2024-12-09 22:53:55浏览次数:7  
标签:代码生成 scanner JavaUtils nextLine System String println out 04

题记部分

 

 

001 || 引入依赖

<!-- Code Generator -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.9</version>
</dependency>
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.32</version>
</dependency>

 

002 || 核心内容

package com.harley.common;


import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.config.OutputFile;

import java.util.Collections;
import java.util.Scanner;

/**
 * @author harley
 * @since 2024-12-09 22:00:02
 */
public class CodeGenerator {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 获取数据库连接信息
        System.out.println("请输入数据库URL:");
        String dbUrl = scanner.nextLine();
        System.out.println("请输入数据库用户名:");
        String dbUsername = scanner.nextLine();
        System.out.println("请输入数据库密码:");
        String dbPassword = scanner.nextLine();

        // 获取其他配置信息
        System.out.println("请输入作者名字:");
        String author = scanner.nextLine();
        System.out.println("请输入父包名(例如:com.yourcompany):");
        String parentPackage = scanner.nextLine();
        System.out.println("请输入模块名(例如:module-name):");
        String moduleName = scanner.nextLine();
        System.out.println("请输入需要生成的表名(多个表以逗号分隔):");
        String tableNames = scanner.nextLine();

        FastAutoGenerator.create(dbUrl, dbUsername, dbPassword)
                .globalConfig(builder -> {
                    builder.author(author) // 设置作者名
                            .outputDir(System.getProperty("user.dir") + "/src/main/java"); // 设置输出目录
                })
                .packageConfig(builder -> {
                    builder.parent(parentPackage) // 设置父包名
                            .moduleName(moduleName) // 设置模块名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); // 设置mapper.xml生成路径
                })
                .strategyConfig(builder -> {
                    builder.addInclude(tableNames.split(",")) // 设置需要生成的表名
                            .entityBuilder() // 实体类生成策略
                            .enableLombok() // 开启 Lombok 模型
                            .logicDeleteColumnName("deleted") // 逻辑删除字段名
                            .controllerBuilder() // 控制器生成策略
                            .enableRestStyle() // REST 风格控制器
                            .enableHyphenStyle() // 使用连字符命名风格
                            .serviceBuilder() // Service 生成策略
                            .formatServiceFileName("%sService") // 格式化 service 文件名
                            .formatServiceImplFileName("%sServiceImpl") // 格式化 serviceImpl 文件名
                            .mapperBuilder() // Mapper 生成策略
                            .enableBaseColumnList() // 启用 BaseColumnList
                            .enableBaseResultMap(); // 启用 BaseResultMap
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用 FreeMarker 引擎,默认是 Velocity
                .execute(); // 执行代码生成

        System.out.println("代码生成完成!");
        scanner.close();
    }

}

 

003 || 使用

直接运行代码

 

 

 

 

标签:代码生成,scanner,JavaUtils,nextLine,System,String,println,out,04
From: https://www.cnblogs.com/houhuilinblogs/p/18596207

相关文章

  • JavaUtils - [03] 代码生成器
    题记部分 001|| 引入依赖<!--CodeGenerator--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version></dependency><dependenc......
  • 在Ubuntu 22.04上搭建Kubernetes集群
    Kubernetes简介什么是Kubernetes?Kubernetes(常简称为K8s)是一个强大的开源平台,用于管理容器化应用程序的部署、扩展和运行。它最初由Google设计并捐赠给CloudNativeComputingFoundation(CNCF)来维护,现在已经成为容器编排领域的事实标准。Kubernetes的核心特性服务......
  • 单词拼写纠正-04-161.力扣 相隔为 1 的编辑距离
    拼写纠正系列NLP中文拼写检测实现思路NLP中文拼写检测纠正算法整理NLP英文拼写算法,如果提升100W倍的性能?NLP中文拼写检测纠正Paperjava实现中英文拼写检查和错误纠正?可我只会写CRUD啊!一个提升英文单词拼写检测性能1000倍的算法?单词拼写纠正-03-leetcodeedit-d......
  • leetcode 904. 水果成篮
    904.水果成篮说白了就是:找最多包含两种元素的最长子串,返回其长度值得注意的是,当窗口内有三种种类时,左窗口边界是要向右移动到窗口内只剩两种种类,而不是什么先进先出!比如[1,0,1,4,1,4,1,2,3] 法一:unordered_mapclassSolution{public:inttotalFruit(vector<int>&......
  • L1-049 天梯赛座位分配
    题目:天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情。为此我们制定如下策略:假设某赛场有N所学校参赛,第i所学校有M[i]支队伍,每队10位参赛选手。令每校选手排成一列纵队,第i+1队的选手排在第i队选手之后。从第1......
  • P1004 [NOIP2000 提高组] 方格取数
    题目描述设有 N×N 的方格图 (N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 0。如下图所示(见样例):某人从图的左上角的 A 点出发,可以向下行走,也可以向右走,直到到达右下角的 B 点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字 0)......
  • 物联网平台最新整理(20241204)
    名称简介开发语言是否开源/更新时间/提交数量开源地址官网地址/文档地址是否国产ioBrokerioBroker是一个软件解决方案,用于集成各种智能家居系统,智能家居设备。为不同的设备和系统提供统一的管理和控制核心服务,以此解决设备信息不互通的问题Shell✔️/2024.10.23/10......
  • LCR 047. 二叉树剪枝(中等)(主站814)
    https://leetcode.cn/problems/pOCWxh/https://leetcode.cn/problems/binary-tree-pruning/难度:☆☆☆题目:给定一个二叉树根节点root,树的每个节点的值要么是0,要么是1。返回移除了所有不包含1的子树的原二叉树。节点node的子树为node本身,以及所有node的后......
  • 医学图像处理领域的37个公开数据集|个人观点·24-12-04
    小罗碎碎念上个月分享过影像组学和病理组学领域的公开数据集,不过那批数据是从已发表的文献中提取的。这两天我在查文献的时候,发现了另外一种查找公开数据集的方式——直接搜索标题中含有“dataset”的文献。首先采用上面提到的方法进行文献检索,然后经过筛选,最终挑出了3......
  • 洛谷 P1304:哥德巴赫猜想 ← 素数
    【题目来源】https://www.luogu.com.cn/problem/P1304【题目描述】输入一个偶数N,验证4∼N所有偶数是否符合哥德巴赫猜想:任一大于2的偶数都可写成两个质数之和。如果一个数不止一种分法,则输出第一个加数相比其他分法最小的方案。例如10,10=3+7=5+5,则10=5+5是错误答案。......