# TableCodeGenerator **Repository Path**: Hoysing/TableCodeGenerator ## Basic Information - **Project Name**: TableCodeGenerator - **Description**: TableCodeGenerator是一款商用版Idea插件, 可以根据数据库表数据和自定义模版生成代码文件 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-03 - **Last Updated**: 2022-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 背景介绍 my name is **Hoysing**,我下载过很多关于数据库生成java文件的插件,但[EasyCode](https://gitee.com/makejava/EasyCode) 深受我喜欢,用得比较久时发现它很好用,但又有一点点不好用 于是这不~~皮痒了~~爱探究,就开始探讨一下EasyCode源码, 借鉴了些思想和代码顺便改进一下,于是就有了TableCodeGenerator #### 语言约定 比如我说商用版Idea插件(Idea),意思是接下来的内容商用版Idea插件将简称为Idea #### 本项目介绍 TableCodeGenerator是一款商用版Idea插件, 可以根据数据库表数据和自定义模版生成代码文件,比如根据user,role表生成controller.java, 当然不局限于java文件,可以自定义文件路径,文件名,文件格式 #### 特性 自由选择文件路径 统一多表生成多个模版对应文件 自由分享模版文件 高定制模版文件 #### 准备 推荐使用2020年版本后的Idea, 也许有intellij的数据库内置插件也可以安装,但不保证能不能用 如果想要高定制模版文件,推荐先观看b站黑马的Volecity视频 #### 基本使用 打开idea数据库插件,右击表格,TableCodeGenerator>Generate Code,如下: 打开生成代码窗口,可以选择项目可用的模块,基本路径会显示对应的模块路径,当然也可以自己选择模块路径,或者输入绝对路径,如图: 插件采取vm格式的模版文件, 若**没模版时自动导入并同步内部模版**按钮是勾选的, 开始打开生成代码窗口, 打开生成代码窗口如果开始没有模版文件时TableCodeGenerator开始 将在idea的Scratches and Consoles/Extensions/TableCodeGenerator生成内置模版文件, 在Scratches and Consoles/Extensions/TableCodeGenerator会更方便管理模版文件, 因为这里自带idea操作文件的功能,比如批量复制,批量粘贴,修改文件名 如图: 生成代码窗口(主页)会读取文件结构树渲染为ui树,如图: 选择模版文件会生成对应模版, 若没有勾选自动同步,则需要每次修改模版文件时手动点击同步模版数据按钮,否则生成代码时可能会错误, 所以建议经常修改模版文件则使用自动同步,它会每次生成代码都会重新获取模版文件内容,如图: 自定义生成文件冲突策略,如图: 选择TableCodeGenerator文件夹路径,点击导入外部模版按钮, 会把TableCodeGenerator文件夹所有模版文件复制到Scratches and Consoles/Extensions/TableCodeGenerator, 方便分享模版文件,如图: 那怎么导出Scratches and Consoles/Extensions/TableCodeGenerator文件夹呢,直接复制文件夹, 粘贴出去就好 自动同步原始数据暂未能使用 剩下的简单ui功能自行探索,不一一说明 #### 灵活的模版文件 内置TableCodeGenerator文件夹下有Fragment文件夹,意为代码片段,可重用Fragment文件夹内的代码内容 而Template而是主要的模版文件,可以引入Fragment文件,引入语法是作者自定义的语法,比如: ``` #fragment("Default.define") ``` 引入了Fragment下的Default的define.vm的代码内容,相当于包含此代码,包含的代码会被模版引擎解析 在此列出模版常用对象有: stringUtils systemUtils mycallback 关于api不一一列举,内置模版文件有很多使用模版案例可以参考,可以查看源码