若依前端后端分离 代码生成修改(1)

2023/4/18 14:22:01

本文主要是介绍若依前端后端分离 代码生成修改(1),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

模板引擎修改

2023年3月7日

9:26

主要配置参数的引用和定义

  1. 表字段
.vm模板: 参数名 使用位置(.vm模板文件中) 前端表单表头 默认值来源 db表: gen_table
packageName package ${packageName}.controller; 生成包路径 配置文件

Packag

e_name

ClassName和className I${ClassName}Service ${className}Service; - DB 表名 配合配置文件使用 class_name(类名非引用名)
functionName

/**

* 获取${functionName}详细信息

*/

生成功能名 DB表的注释 function_name
moduleName 模块名 @RequestMapping("/${moduleName}/${businessName}") 生成模块名 配置文件 包名最后一级 module_name
businessName 业务名 生成业务名 配置文件 DB名最后一级 business_name
  1. 列字段
参数 前端表单表头 db表: gen_table_column
 
字段列名
字段描述
物理类型
Java类型
java属性
插入
编辑
列表
查询
查询方式
必填
显示类型
字典类型
column_name
column_comment
column_type
java_type
java_field
is_required
is_insert
is_edit
is_list
is_query
query_type
html_type
dict_type

解释:

a. DB表名 "_" 分割 命名 (windows MySQL 表名全部小写, 若要区分大小写,请修改数据库配置文件)

b. 配置文件所在位置: ruoyi-generator/src/main/resources/generator.yml

c. 默认表字段参数设置核心代码位置: ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java#initTable(...)

d. 默认列字段参数设置核心代码位置: ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java#initColumnField(...)

e. 使用位置只是举例具体全部 查看模板文件

<!-- -->

f. 个人使用的事若依前后端分离版本 3.2.0

模板引擎工作流程

引用来源 :https://oomspot.com/post/ruoyiguanlixitongruoyivuesandaimashengchengqiyuanl

  1. 首先看com.ruoyi.generator.controller.GenControllerimportTableSave 接口,它做了以下这些事情

    a. 从information_schema数据库的tables表中查询目标表的表明、标注释、创建时间和更新时间,但是忽略掉定时任务的表和已经生成过的表。

    b. 初始化表数据并将数据插入ruoyi数据库的gen_table表

    c. 从information_schema数据库的columns表中查询目标表的列信息,包含字段名、字段注释、字段类型、是否允许为null等详细信息

    d. 初始化列信息并将数据插入ruoyi数据库的gen_table_column表

<!-- -->
  1. 接下来看下 com.ruoyi.generator.controller.GenControllerbatchGenCode 接口,它做了以下这些事情

    a. 从ruoyi数据库的gen_table、gen_table_column表查询出生成代码需要的表和列信息。

    b. 初始化Velocity

    c. 准备Velocity上下文信息(变量值信息)

    d. 读取模板、渲染模板,然后将渲染后的模板内容添加进如压缩流,之后前端就可以下载zip压缩文件了。

  1. 导入按钮 业务流程

    a. 前端 导入按钮 发送请求 http://localhost/dev-api/tool/gen/db/list?pageNum=1&pageSize=10&tableName=liner

    b. controller流程

    1.  获取前端 要导入的 tables (数组) 获得 DB 表名数组
    
    2.  查询DB 获得 List\<GenTable\> 列表 (此时只封装了 DB中有的基本 数据)
    
    3.  importGenTable( List\<GenTable\> ) ①设置默认的表字段信息 ② 设置默认的列字段信息
    

  1. 设置默认的表字段信息

initTable(GenTable genTable, String operName)

// 判读配置文件是否设置除去前缀 ,去除前缀后 变为类名 全部小写后 首字母大写拼接

genTable.setClassName(convertClassName(genTable.getTableName()));

//从配置文件中获取 包名的配置

genTable.setPackageName(GenConfig.getPackageName());

// 包名的最后一级

genTable.setModuleName(getModuleName(GenConfig.getPackageName()));

//{_}分割命名 DB表名的最后一级

genTable.setBusinessName(getBusinessName(genTable.getTableName()));

//功能名 就是DB表的注释 如果表中的注释有 表或若依 替换为""

genTable.setFunctionName(replaceText(genTable.getTableComment()));

//从配置文件中获取 作者信息

genTable.setFunctionAuthor(GenConfig.getAuthor());

// SecurityUtils.getUsername(); 登录用户名

genTable.setCreateBy(operName);

  1. 设置默认的列字段信息

initColumnField(GenTableColumn column, GenTable table) 方法主要做的事

根据 DB字段名 (例first_name), 字段类型(例int(11)), 注释(曾用名), 约束(not null,主键...) 推断出

Java类型 , java属性, 插入, 编辑, 列表, 查询, 查询方式, 必填, 显示类型, 字典类型 这些字段的值

  1. 代码生成业务流程

    a. 预览

    b. 下载 只修改下载路径和导入路径

    c. 保存到相关目录



这篇关于若依前端后端分离 代码生成修改(1)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程