一、模块简介

1、功能亮点

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

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

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

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

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

2、运行依赖服务

代码生成器运行依赖Mysql数据库,版本不限。

  • Mysql数据库

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

3、代码生成器2.0

代码生成器升级内容如下:

  • 移除Redis服务强依赖
  • 移除登陆依赖
  • 移除系统SQL脚本依赖

当前代码生成器属于2.0版本。

二、两种典型使用场景

(一)克隆Demo项目

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

# 拉去脚手架,并初始化项目
git clone https://gitee.com/decsa/demo-code.git
1、修改数据库连接配置

运行测试SQL脚本,添加数据库表结构,开始体验代码生成的功能。

spring:
datasource:
url: jdbc:mysql://localhost:3306/ucode-cms
username: root
password: 123456
2、添加依赖

检查pom文件中是否包含代码生成器Maven包依赖,如果没有,则添加如下依赖

<dependency>
<groupId>xin.altitude.cms</groupId>
<artifactId>ucode-cms-code-spring-boot-starter</artifactId>
<version>1.5.6.1</version>
</dependency>
3、可视化界面

配置完上述连接后,启动项目。访问http://localhost:8080进入控制台界面。

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

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

4、重启项目

访问地址http://localhost:8080/doc.html 访问接口列表。


(二)独立创建项目

独立创建项目支持从零构建代码生成器运行环境,既支持嵌入已存在的项目中,也支持新创建的项目。2.0版本重点优化此部分内容。

1、添加依赖
<!--代码本地化生成依赖-->
<dependency>
<groupId>xin.altitude.cms</groupId>
<artifactId>ucode-cms-code-spring-boot-starter</artifactId>
<version>1.5.6.1</version>
</dependency>

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

2、配置数据库连接

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

spring:
datasource:
url: jdbc:mysql://localhost:3306/ucode-cms
username: root
password: 123456
3、启动项目

启动项目后,访问http://localhost:8080进入代码生成器控制台界面。

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

再次重启项目,访问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.6.1</version>
</dependency>
3、多表连接查询异常

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

更高级别的套娃尚不支持。

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

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

基于MybatisPlus代码生成器(2.0新版本)的更多相关文章

  1. 还在写CURD?试试这款基于mybatis-plus的springboot代码生成器

    目录 ⚡Introduction ✔️Release Features Quick Start Examples 1.Controller模板代码示例 2.Service模板代码示例 3.Servic ...

  2. 基于mybatis-plus的代码生成

    基于mybatis-plus的代码生成 前言 随着敏捷开发模式的推广,伴着日益增长的需求,日常工作中我们越来越注重效率和便捷性.今天我们就来探讨下如何自动生成代码,准确地说是如何依赖数据库生成我们的e ...

  3. SpringBoot中的自动代码生成 - 基于Mybatis-Plus

    作者:汤圆 个人博客:javalover.cc 前言 大家好啊,我是汤圆,今天给大家带来的是<SpringBoot中的自动代码生成 - 基于Mybatis-Plus>,希望对大家有帮助,谢 ...

  4. SpringBoot集成MyBatis-Plus代码生成器(Dao)

    1.说明 本文基于SpringBoot集成MyBatis-Plus代码生成器, 把原来生成Entity.Mapper.Mapper XML.Service.Controller等各个模块的代码, 修改 ...

  5. SpringBoot集成MyBatis-Plus代码生成器

    1.说明 本文详细介绍Spring Boot集成MyBatis-Plus代码生成器的方法. 基于一个创建好的Spring Boot工程, 执行MyBatis-Plus提供的AutoGenerator代 ...

  6. RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)

    最新版本请转到:RDIFramework.NET平台代码生成器V3.1版本全新发布-更新于2016-10-08(提供下载) RDIFramework.NET代码生成器V3.0版本修改了针对3.0版本的 ...

  7. RDIFramework.NET平台代码生成器V1.0发布(提供下载)

    RDIFramework.NET平台代码生成器V1.0发布(提供下载)   RDIFramework.NET(.NET快速开发整合框架)框架做为信息化系统快速开发.整合的框架,其目的一至是给用户和开发 ...

  8. Mybatis-Plus 代码生成器基本使用

    Mybatis-Plus 代码生成器基本使用 参考 https://mp.baomidou.com/guide/generator.html#%E4%BD%BF%E7%94%A8%E6%95%99%E ...

  9. 基于Mybatis-Plus实现自动化操作创建时间和修改时间

    引入 在实际开发中,总会避免不了操作数据库,而在数据库中每个表都会有create_time和update_time字段记录操作时间,我们在操作这两个时间的时候也可能会出现不一致的情况,或者说这两个字段 ...

随机推荐

  1. LC-202

    编写一个算法来判断一个数 n 是不是快乐数. 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和. 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 ...

  2. 无需debug,通过抽象模型快速梳理代码核心流程

    上一篇我们通过DSM来确定了核心对象并构建了抽象模型.本篇是<如何高效阅读源码>专题的第八篇,我们来基于抽象模型来梳理核心流程. 本节主要内容: 如何通过抽象模型来梳理核心流程 从类名和注 ...

  3. 使用加强堆结构解决topK问题

    作者:Grey 原文地址: 使用加强堆结构解决topK问题 题目描述 LintCode 550 · Top K Frequent Words II 思路 由于要统计每个字符串的次数,以及字典序,所以, ...

  4. Python 速通爆肝、列表推导式、生成器、装饰器、生命游戏

    列表推导式.赋值.切片(替换.插入).字符串处理与判断.enumerate().格式化字符串.读写文件.global 关键字.字符串startswith().类与对象.生成器.装饰器.Self.*ar ...

  5. 生成二维码,并且保存,指定位置的view成图片,并且保存到本地相册

    效果图: 保存的图片效果是: 保存到本地的,是整个视图,不只是单单的二维码的图片, 在了解的一番过程之后,我知道了, 1.首先要去获取保存图片的写入权限:(使用 https://github.com/ ...

  6. el-tree小知识点

    <el-tree ref="tree" :props="props" :data="initData" node-key=" ...

  7. 【2022.04.19】Docker-compose一键安装mirai,搭建QQ机器人最快方法

    先用官方的脚本安装下docker curl -sSL https://get.docker.com/ | sh 安装docker-compose curl -L "https://githu ...

  8. 面试突击42:synchronized和ReentrantLock有什么区别?

    在 Java 中,常用的锁有两种:synchronized(内置锁)和 ReentrantLock(可重入锁),二者的功效都是相同得,但又有很多不同点,所以我们今天就来聊聊. 区别1:用法不同 syn ...

  9. mysql常见的5种日志

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 错误日志(errorlog) 用来记录mysqlId的错误信息,如数据库 ...

  10. AsyncLocal<T>在链路追踪中的应用

    前言 在项目生产中日志的记录是必不可少的,在.net项目中,要说日志组件,log4net绝对可有一席之地,随着公司业务的发展,微服务则必定无可避免.在跨服务中通过日志进行分析性能或者排查故障点,如何快 ...