前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​基于MybatisPlus代码生成器(2.0新版本)

​基于MybatisPlus代码生成器(2.0新版本)

原创
作者头像
赛先生和泰先生
发布2022-06-16 09:38:18
1.1K0
发布2022-06-16 09:38:18
举报
文章被收录于专栏:Java知识图谱Java知识图谱

一、模块简介

1、功能亮点

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

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

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

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

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

2、运行依赖服务

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

  • Mysql数据库

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

3、代码生成器2.0

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

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

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

二、两种典型使用场景

(一)克隆Demo项目

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

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

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

代码语言:txt
复制
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/ucode-cms
    username: root
    password: 123456
2、添加依赖

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

代码语言:html
复制
<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进入控制台界面。

WX20220612-190409@2x4444A
WX20220612-190409@2x4444A

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

WX20220612-185859@2x3333A
WX20220612-185859@2x3333A

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

4、重启项目

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


(二)独立创建项目

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

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

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

2、配置数据库连接

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

代码语言:yaml
复制
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文件添加如下配置:

代码语言:html
复制
<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、项目打包发布时如何处理代码生成器依赖?

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

代码语言:html
复制
<!--代码生成器模块(非必选)-->
<dependency>
    <groupId>xin.altitude.cms</groupId>
    <artifactId>ucode-cms-code-spring-boot-starter</artifactId>
    <version>1.5.6.1</version>
</dependency>
3、多表连接查询异常

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

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

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

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


如有疑问,可通过微信dream4s与作者联系。源码在GitHub ,视频讲解在B站 ,本文收藏在博客天地

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、模块简介
    • 1、功能亮点
      • 2、运行依赖服务
        • 3、代码生成器2.0
        • 二、两种典型使用场景
          • (一)克隆Demo项目
            • 1、修改数据库连接配置
            • 2、添加依赖
            • 3、可视化界面
            • 4、重启项目
          • (二)独立创建项目
            • 1、添加依赖
            • 2、配置数据库连接
            • 3、启动项目
            • 1、单表处理
            • 2、多表连接
            • 3、主要参数
            • 1、找不到依赖?
            • 2、项目打包发布时如何处理代码生成器依赖?
            • 3、多表连接查询异常
            • 4、生成后的代码能无缝迁移到新项目吗?
        • 三、高级使用
        • 四、常见问题
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档