【Java实战】Mybatis plus根据数据库表自动生成代码

news2025/1/10 3:41:57

首先生成一个maven项目,不会生成的参考  【Java实战】创建第一个Springboot项目Hello worldicon-default.png?t=N7T8https://blog.csdn.net/forgetmiss/article/details/133889733

(写的过程中遇到过的问题:mybatis-plus 生成controller中的代码, RequestMapping除了双斜杠问题@RequestMapping("//article")。解决方法: pc.setModuleName(null) )

1、pom.xml中添加依赖。

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version> <!-- 使用适合你的 MySQL 版本的驱动版本 -->
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version> <!-- 使用适合你的 Freemarker 版本 -->
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.2</version>
        </dependency>

2、新建一个CodeGenerator.java文件

package org.example.learningExample.generate;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Scanner;

public class CodeGenerator {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要生成代码的表名,多个表名使用逗号分隔:");
        String tablesInput = scanner.nextLine();
        String[] tables = tablesInput.split(",");
        AutoGenerator mpg = new AutoGenerator();
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());

        GlobalConfig gc = new GlobalConfig();
        gc.setAuthor("LiangFeng"); // 作者信息:欢迎关注程序员良枫
        gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java");//设置生成的路径
        gc.setServiceName("%sService");//去掉服务接口service前缀
        gc.setFileOverride(false);//是否覆盖文件。如果代码直接生成到生产代码里面,请谨慎启用,避免覆盖掉项目代码。
        gc.setOpen(false);//是否打开
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        //改成你自己的数据库
        dsc.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");//mysql用户名
        dsc.setPassword("123456");//mysql密码
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName(null); //必须设置,不然requestMapping会出现双斜杠问题。
        pc.setParent("org.example.learningExample");//包配置
        pc.setController("controller"); //controller
        pc.setService("service"); //服务接口
        pc.setServiceImpl("service.impl"); //服务实现
        pc.setMapper("mapper"); //mapper
        pc.setEntity("entity"); //实体
        mpg.setPackageInfo(pc);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
        strategy.setInclude(tables); // 从命令行参数读取表名
        mpg.setStrategy(strategy);

        mpg.execute();
    }

}

3、右键 CodeGenerator.java 选择运行

4、输入你想生成代码的表名,如果有多个就用逗号分割。输入完成,点击回车。代码就生成了。

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

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

相关文章

Bootstrap-- 内容

Bootstrap4 - 中文文档 - 内容 处理不同尺寸下的图片的处理&#xff0c;避免资源浪费&#xff01;&#xff01;&#xff01;

liunx下软链接和硬链接的用法

什么是软链接&#xff08;类似快捷方式&#xff09;&#xff1a; 符号连接&#xff08;Symbolic Link&#xff09;&#xff0c;也叫软连接。 软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中&#xff0c;文件实际上是一个文本文件&#xff0c…

怎么压缩证件照到200k以下?教你在线压缩图片指定kb

新一年的国考报名开始了&#xff0c;相信许多小伙伴还在发愁报名信息资料上传的问题&#xff0c;比如提交证件照时会要求具体的图片kb大小&#xff0c;本文就来教大家怎么快速图片压缩指定大小&#xff08;https://www.yasuotu.com/imagesize&#xff09;&#xff0c;而且还不需…

GitKraken for Mac:强大且跨平台的Git客户端

如果你正在寻找一个强大、直观且跨平台的Git客户端&#xff0c;那么GitKraken绝对值得你考虑。在本文中&#xff0c;我们将详细介绍GitKraken的各项功能和优势&#xff0c;以帮助你了解它如何帮助你更有效地管理和提交代码。 GitKraken是一款真正的跨平台工具&#xff0c;可以在…

2024年关于湖北省建筑安全员B证报考你需要了解

2024年关于湖北省建筑安全员B证报考你需要了解 建筑安全员B证指的是建设厅三类人员建安B证&#xff0c;很多人对于B证报考不是很了解&#xff0c;对于安全员B报考条件、报考流程、报考时间、报考地区等事项叙后尘告诉你们。 湖北建筑安全员B证报考条件-建安B证 1.你的二级建造师…

(2022|ECCV,文本图像视频,3D 邻域注意,3D 稀疏注意)NÜWA:神经视觉世界创建的视觉合成预训练

NWA: Visual Synthesis Pre-training for Neural visUalWorld creAtion 公众号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 1. 简介 2. 相关工作 2.1. 视觉自回归模型 2.2. 视觉…

HugeGraph1.0.0部署,吐槽一下Hubble的数据导入 Bug

背景 HugeGraph 安装部署了最新版本1.0.0&#xff0c;发现它的 Web 工具 Hubble 有一个大 Bug。数据导入的时候&#xff0c;配置节点属性映射这个选项时&#xff0c;下拉框只有一个选项&#xff0c;但实际上&#xff0c;元数据配置中的属性有3个&#xff0c;这个 Bug 是怎么产…

Python开发之二维数组空缺值的近邻填充

Python开发之二维数组空缺值的填充 1 实现一&#xff0c;任意位置填充2 实现二&#xff0c;填充内部3 实现三&#xff0c;只填充边缘&#xff0c;不包括四个角 前言&#xff1a;主要实现二维数据里面某一个数据的缺失&#xff0c;用缺失的近邻数据进行均值填充&#xff0c;可以…

oracle 错题汇总

在Oracle数据库中&#xff0c;如果你在GROUP BY子句中指定了列&#xff0c;那么SELECT子句中除了聚合函数外的每个列都必须在GROUP BY子句中列出。 1.查询出每个部门的编号、名称、位置、部门人数、平均工资。 SELECT d.deptno AS "部门编号", d.dname AS &…

Jmeter(四):请求默认值元件应用,正则表达式提取器元件讲解

Jmeter请求默认值元件应用 HTTP请求默认值 在公司内部进行测试的时候&#xff0c;一般测试环境访问的接口地址&#xff08;服务器名称 或IP&#xff09;、端口、协议一般都是不变的&#xff0c;但http请求取样器每个请求都要求写一遍 这些信息&#xff0c;在实际HTTP请求取样…

数据驱动娱乐的未来:揭秘爱奇艺如何利用Apache Spark实现个性化推荐和内容分析

Apache Spark 在爱奇艺的现状与应用 Apache Spark 是爱奇艺大数据平台的核心组件&#xff0c;被广泛应用于数据处理、数据同步和数据查询分析等关键场景。在数据处理方面&#xff0c;爱奇艺通过数据开发平台支持开发者提交 Spark Jar 包任务或 Spark SQL 任务&#xff0c;进行…

预防电压波动带来的灾难:瞬态电压抑制器的作用和原理 | 百能云芯

在当今数字化时代&#xff0c;电子设备的应用已经无处不在&#xff0c;从个人电脑到智能手机&#xff0c;再到工业自动化系统和通信设备&#xff0c;这些设备的正常运行对于我们的生活和工作至关重要。然而&#xff0c;电子设备常常会受到来自电力系统的电压波动和瞬态电压的威…

Win+L不能锁屏

1、运行WINR&#xff0c;输入REGEDIT&#xff0c;运行注册表&#xff1a; 2、CTRLF&#xff0c;输入查找DisableLockWorkstation 3、双击这个&#xff0c;点十进制&#xff0c;输入0点确认即可。

复制粘贴(一):copy paste 事件

页面内容如下&#xff1a; <body><div id"container1"><p>阳光<input type"button" value"按钮" /><span>hello</span></p></div> </body>选择所有内容&#xff1a; user-select 按钮左…

低代码如何赋能实体经济走向数实融合

数字工厂、智慧园区、智慧社区、数字乡村、智慧校园、数字化管理平台……当前&#xff0c;各行各业正在全面拥抱数字化。“数实融合”的浪潮持续高涨&#xff0c;企业数字化转型的呼声也不断走高。然而&#xff0c;当前实体经济和数字经济融合不全&#xff0c;数字技术未能深度…

你可以永远相信铁死亡,4+机器学习+分型+实验的干湿结合机制

今天给同学们分享一篇铁死亡机器学习分型实验的生信文章“Identification of Ferroptosis-Related Biomarkers for Diagnosis and Molecular Classification of Staphylococcus aureus-Induced Osteomyelitis”&#xff0c;这篇文章于2023年4月26日发表在J Inflamm Res期刊上&a…

webpack快速入门

目录 1.概述 1.1.什么是webpack 1.2.loader 2.项目搭建 3.打包js&#xff1a; 4.打包CSS 5.打包图片 6.插件 1.概述 1.1.什么是webpack webpack是一个打包工具&#xff0c;其作用是对整个项目中的js、image、css进行打包。 传统的前端项目引用的第三方js或者css的时候…

DTI综述(更新中)

Deep Learning for drug repurposing&#xff1a;methods&#xff0c;datasets&#xff0c;and applications 综述读完&#xff0c;觉得少了点东西&#xff0c;自己写个DTI综述 Databases(包括但不限于文章中的) DATABASEDESCRIBEBindingDB有详细的drug信息和对应的target&a…

美国绿氢项目开发商NovoHydrogen完成2000万美元融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于美国科罗拉多州戈尔登的绿氢项目开发商NovoHydrogen今日宣布已完成2000万美元融资。 本轮融资由现代能源公司领投。 该公司打算利用这笔资金进一步扩大其团队&#xff0c;并将其绿氢项目的…

页面路由跳转 - 文件 File对象数据传递

目录 需求主要问题点问题点2.1 演示问题点2.2 演示及解决页面B 处理1 - 有问题页面B 处理2 - 没有问题 - 最终解决办法 【补充】 file 对象转为 base64 文件&#xff08;即 将 file 对象转为 DataURL&#xff09; 需求 页面A填写完信息&#xff08;填写的信息中有上传的文件&am…