基于MybatisPlus代码生成器(2.0新版本)
一、模块简介
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新版本)的更多相关文章
- 还在写CURD?试试这款基于mybatis-plus的springboot代码生成器
目录 ⚡Introduction ✔️Release Features Quick Start Examples 1.Controller模板代码示例 2.Service模板代码示例 3.Servic ...
- 基于mybatis-plus的代码生成
基于mybatis-plus的代码生成 前言 随着敏捷开发模式的推广,伴着日益增长的需求,日常工作中我们越来越注重效率和便捷性.今天我们就来探讨下如何自动生成代码,准确地说是如何依赖数据库生成我们的e ...
- SpringBoot中的自动代码生成 - 基于Mybatis-Plus
作者:汤圆 个人博客:javalover.cc 前言 大家好啊,我是汤圆,今天给大家带来的是<SpringBoot中的自动代码生成 - 基于Mybatis-Plus>,希望对大家有帮助,谢 ...
- SpringBoot集成MyBatis-Plus代码生成器(Dao)
1.说明 本文基于SpringBoot集成MyBatis-Plus代码生成器, 把原来生成Entity.Mapper.Mapper XML.Service.Controller等各个模块的代码, 修改 ...
- SpringBoot集成MyBatis-Plus代码生成器
1.说明 本文详细介绍Spring Boot集成MyBatis-Plus代码生成器的方法. 基于一个创建好的Spring Boot工程, 执行MyBatis-Plus提供的AutoGenerator代 ...
- RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)
最新版本请转到:RDIFramework.NET平台代码生成器V3.1版本全新发布-更新于2016-10-08(提供下载) RDIFramework.NET代码生成器V3.0版本修改了针对3.0版本的 ...
- RDIFramework.NET平台代码生成器V1.0发布(提供下载)
RDIFramework.NET平台代码生成器V1.0发布(提供下载) RDIFramework.NET(.NET快速开发整合框架)框架做为信息化系统快速开发.整合的框架,其目的一至是给用户和开发 ...
- Mybatis-Plus 代码生成器基本使用
Mybatis-Plus 代码生成器基本使用 参考 https://mp.baomidou.com/guide/generator.html#%E4%BD%BF%E7%94%A8%E6%95%99%E ...
- 基于Mybatis-Plus实现自动化操作创建时间和修改时间
引入 在实际开发中,总会避免不了操作数据库,而在数据库中每个表都会有create_time和update_time字段记录操作时间,我们在操作这两个时间的时候也可能会出现不一致的情况,或者说这两个字段 ...
随机推荐
- 申请百度翻译API
申请百度翻译API 0x00 前期准备 百度账号 md5的相关知识 0x01 进入百度开放平台,登录你的百度账号 找到 产品服务 -> 通用翻译API 0x02 点击下面的立即使用按钮,注册成为 ...
- Chrome JSON格式化插件
1.JSONView插件下载地址:https://github.com/gildas-lormeau/JSONView-for-Chrome 2.解压(E:\json) 3.打开Chrome-扩展程序 ...
- IOH和MCH(北桥芯片的变化)
IOH位置架构图示意图 北桥芯片-MCH和北桥芯片-IOH区别 1.MCH是内存控制器中心的英文缩写,负责连接CPU,AGP总线和内存, 目前Intel的CPU已经把内存控制器(北桥芯片-MCH)总线 ...
- 基于Vue开发的门户网站展示和后台数据管理系统
基于Vue的前端框架有很多,这几年随着前端技术的官方应用,总有是学不完的前端知识在等着我们,一个人的精力也是有限,不可能一一掌握,不过我们学习很大程度都会靠兴趣驱动,或者目标导向,最终是可以以点破面, ...
- python向上取整以50为界
import math def getNum(limit_num,num): if num%limit_num==0: print(num) else: num=math.ceil(num/limit ...
- 两数之和_LeetCode_1
LeetCode_1原题链接:https://leetcode-cn.com/problems/two-sum/ 剑指 Offer 57原题链接: https://leetcode-cn.com/pr ...
- CV技术指南免费版知识星球
最近公众号的交流群满了,我们决定搞一个免费的知识星球,让大家在里面交流.以往都是我们写原创,大家阅读,读者之间没什么交流.与此同时,在CV技术指南交流群里,大部分问题都得到了很好地解决,但从来没有 ...
- 攻防世界-MISC:embarrass
这是攻防世界高手进阶区的第二题,题目如下: 点击下载附件一,得到一个压缩包,解压后得到一个流量包 用wireshake打开,CTRL+F搜索字符串flag,记住要选择分组字节流 点击查找 在点击几次过 ...
- 论文解读(GMT)《Accurate Learning of Graph Representations with Graph Multiset Pooling》
论文信息 论文标题:Accurate Learning of Graph Representations with Graph Multiset Pooling论文作者:Jinheon Baek, M ...
- Linux学习教程 | 全文目录
本教程最大的特点是通俗易懂,并且非常详细,花费 7 天时间即可快速了解 Linux. 第一章 Linux简介 1.1 操作系统是什么,操作系统概述 1.2 Linux是什么,有哪些特点? 1.3 Li ...