不必再造轮子了, 这款代码生成器(一键生成)真的很强

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 不必再造轮子了, 这款代码生成器(一键生成)真的很强.对于百余张表的数据库,使用代码生成器让开发事半功倍。

♨️本篇文章记录的为ucode-cms代码生成器相关内容🙉🙉🙉。
♨️如果文章有什么需要改进的地方还请大佬不吝赐教❤️🧡💛

🏡个人主页 : 阿千弟

前言:

我一贯认为能被称为大神的一个标志就是造轮子的能力

当然我不是鼓励都去造,毕竟重复造轮子会造成资源的浪费

但是大神一定是具备 当现成轮子不满意时可以自己造的能力

@[TOC]
## 🍅 代码生成器使用手册
👇 👇 👇
作者gitee主页 : 赛先生和泰先生

## 一、模块简介
### 1、功能亮点
实时读取库表结构元数据信息,比如表名、字段名、字段类型、注释等,选中修改后的表,点击一键生成,代码成即可提现出表结构的变化。

单表快速转化restful风格的API接口并对外暴露服务。对于百余张表的数据库,使用代码生成器让开发事半功倍。

多表连接查询。多表连接查询默认不开启,需要在全局文件中手动配置。

开启多表连接查询后,代码生成器会自动读取数据库元数据信息中的主外键关系,分别生成一对一、一对多、多对多风格的源代码。

生成的代码接口可通过Swagger暴露。

### 2、运行依赖服务
代码生成器运行依赖Mysql数据库,版本不限。

Mysql数据库
Mysql数据库中库表结构为用户自定义的库表,代码生成将会读取。项目SQL脚本提供5张测试表,方便用于测试使用。

## 二、两种典型使用场景
## (一)独立创建项目
独立创建项目支持从零构建代码生成器运行环境,既支持嵌入已存在的项目中,也支持新创建的项目。

下面我们对此进行一个测试
### 1、添加依赖
<!--代码本地化生成依赖-->
<dependency>
    <groupId>xin.altitude.cms</groupId>
    <artifactId>ucode-cms-code-spring-boot-starter</artifactId>
    <version>1.5.8</version>
</dependency>

如果使用代码生成器功能,则代码本地化生成依赖为必选项。

2、配置数据库连接

数据库连接配置对应的数据库应包含带生成代码的库表结构。

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test28?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
    username: root
    password: 123456

3、启动项目

启动项目后,访问http://localhost:8080进入代码生成器控制台界面。
点击免登录进入代码生成器,进入管理界面。

在这里插入图片描述

4、可视化界面

选中对应表,点击生成代码,在项目中便新添相应的代码。

在这里插入图片描述

5、idea中重启项目

再次重启项目,会发现自动生成了刚才role, user, user_role的do, vo, bo, po类型, 已经对应的mapper层, service层, controller层代码

在这里插入图片描述

甚至controller层的每个测试的方法都已经帮我们写好了

在这里插入图片描述


以及一些涉及中间表的多对多的复杂查询, 太强了

在这里插入图片描述

## (二)克隆Demo项目
使用demo脚手架cms demo项目 ,脚手架是标准的Spring Web工程,稍微修改配置文件可快速入门上手。

java # 拉去脚手架,并初始化项目 git clone https://gitee.com/decsa/demo-code.git
### 1、修改数据库连接配置
运行测试SQL脚本,添加数据库表结构,开始体验代码生成的功能。

java spring: datasource: url: jdbc:mysql://localhost:3306/ucode-cms username: root password: 123456
### 2、添加依赖
检查pom文件中是否包含代码生成器Maven包依赖,如果没有,则添加如下依赖

java <dependency> <groupId>xin.altitude.cms</groupId> <artifactId>ucode-cms-code-spring-boot-starter</artifactId> <version>1.5.8</version> </dependency>
### 3、可视化界面
配置完上述连接后,启动项目。访问http://localhost:8080进入控制台界面。




点击免登录进入代码生成器,进入管理界面。


勾选表结构,点击生成,重启项目,相应的代码生效。


### 4、重启项目
访问地址http://localhost:8080/doc.html 访问接口列表。


## 三、高级使用
在完成简单入门体验后,需要了解代码生成的高级部分,即全局配置。在项目中搜索类名CodeProperties即可查看所有内置可供修改的参数,在全局yml文件中覆盖默认值即可完成修改,按需配置。

### 1、单表处理
当全局配置ucode.code.joinQuery = false或者使用默认配置时,则仅处理单表结构。将表名、字段名、字段类型、备注信息转化为SSM风格的源代码。

### 2、多表连接
当在全局配置ucode.code.joinQuery = true时,则手动开启主外键查询,系统会自动读取表的主外键关系,并将其转化为连接查询的源代码。

### 3、主要参数

参数 |默认值 |使用备注
|--|--|--|
ucode.code.projectDir |空 |用户自定义多模块项目需要指定项目名
ucode.code.removeTablePrefix |false |根据需要是否在生成代码时移除表前缀
ucode.code.packageName |xin.altitude.front |配置用户自己的包名
ucode.code.useLombok |true |默认使用Lombok
ucode.code.filterSysTable | true |默认过滤不显示系统表
ucode.code.joinQuery | false |是否使用连接查询(默认单表查询)
ucode.code.xml.addXml |false |虽然说不建议使用XML文件编写SQL,但仍提高可开启开关
ucode.code.mapper.useCache | true| 默认开启二级缓存,自定义业务缓存可关闭

四、常见问题

1、找不到依赖?

找不到依赖很大可能是因为阿里云景象仓库尚未同步完成Jar包,在项目中pom文件添加如下配置:

<repository>
    <id>public</id>
    <name>maven nexus</name>
    <url>https://repo1.maven.org/maven2/</url>
    <snapshots>
        <updatePolicy>always</updatePolicy>
    </snapshots>
    <releases>
        <updatePolicy>always</updatePolicy>
    </releases>
</repository>

2、项目打包发布时如何处理代码生成器依赖?

项目打包发布时建议手动移除代码生成器依赖,实际上代码生成器的生命周期存在于开发阶段。手动不移除对打包不会产生影响,但仍然建议在打包时移除代码生成器依赖。

<!--代码生成器模块(非必选)-->
<dependency>
    <groupId>xin.altitude.cms</groupId>
    <artifactId>ucode-cms-code-spring-boot-starter</artifactId>
    <version>1.5.8</version>
</dependency>

3、多表连接查询异常

对表连接查询是一项复杂的业务,目前支持:一个员工对应一个部门(一对一)、一个部门对应多个员工(一对多)、一名学生可选修多门课程每门课程可被多名学生选修(多对多)。 更高级别的套娃尚不支持。

4、生成后的代码能无缝迁移到新项目吗?

能。生成的代码具有高度的迁移属性,在新项目中导入缺省依赖即可。如果找不到相关依赖,请参考问题一。

五 . 使用体验:

真是一个宝藏项目,太强了,yyds
目前市面上的一对一,一对多,多对多sql查询代码都可以解决

在这里也希望多为 这位技术博主 赛先生和泰先生 多多支持与关注

在这里插入图片描述

如果这篇【文章】有帮助到你💖,希望可以给我点个赞👍,创作不易,如果有对Java后端或者对redis感兴趣的朋友,请多多关注💖💖💖
🏡个人主页:阿千弟

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
SQL Java 数据库连接
|
前端开发 数据可视化 测试技术
自从用了这款接口神器,团队效率提升了 60%,必须推荐
做技术管理的童鞋,往往会陷入这样一种困境:疲于奔命,到处救火填坑,沟通推进,却挤不出时间思考对团队和项目来说真正重要的事情。
|
人工智能 自然语言处理 安全
如何利用FuncGPT告别繁琐的开源代码调试
作为一名开发人员,您是否曾经在浩如烟海的开源社区中搜索代码,然后花费大量时间测试、调试,最后才发现这些代码并不符合您的需求?专注Java生成AI函数的FuncGPT(慧函数)就像您的私人编程助手,只需输入你的需求,就能提供符合要求的函数,让你告别繁琐的搜索、测试和调试,迈向高效的开发之旅。
|
2月前
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
58 6
|
3月前
|
自然语言处理 Java API
"告别Java8 Stream噩梦,JDFrame神器来袭!让你的代码简洁如诗,效率翻倍,编程新体验等你尝鲜!"
【8月更文挑战第11天】Java 8的Stream API以强大的函数式编程能力革新了集合数据处理方式,但其抽象概念和复杂的链式调用让不少开发者望而却步。为此,JDFrame框架应运而生,通过直观易懂的操作符简化Stream使用,减少代码量并提高效率。
114 3
|
3月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
84 0
|
4月前
|
数据安全/隐私保护 Sentinel Windows
5款简洁干净,功能强悍,专注实用的软件
电脑上的各类软件有很多,除了那些常见的大众化软件,还有很多不为人知的小众软件,专注于实用功能,简洁干净、功能强悍。
43 0
|
6月前
|
并行计算 搜索推荐 图形学
推荐五款简洁而实用的工具,值得你尝试
分享快乐是生活中美好的瞬间,而分享简单巧妙的工具也能令我愉悦。这五款工具简洁而实用,值得你尝试。
78 0
|
数据可视化 搜索推荐 程序员
丝滑!用了这款开发工具,我成了整个公司代码写得最秀的码农
丝滑!用了这款开发工具,我成了整个公司代码写得最秀的码农
|
Web App开发 JavaScript 搜索推荐
五款电脑上的小众软件,简洁干净,功能强悍,值得收藏
电脑上的各类软件有很多,除了那些常见的大众化软件,还有很多不为人知的小众软件,专注于实用功能,简洁干净、功能强悍。
167 0