SmallCoder代码生成器 - 支持Mysql、Oracle、SqlServer 等数据库
前言
本工具基于Liquid
模板引擎开发,语法详见文档 Liquid中文手册。后续如果有不明白的地方在下方留言,我再补充文档。
模板目录:Templates
,文件后缀.nxt
。此目录下的第一层文件夹会被视作模板
输出目录:Out
,默认生成文件后缀.cs
。当模板文件为*.html.nxt
这样的格式时,生成文件后缀为.html
Templates
目录中出现EntityFolder
文件夹时,会被自动替换成实体目录
定义的文件夹(注:如果实体目录为空时,会被替换成实体名称
文件夹);文件名中出现EntityName
时会被替换成实体名称
;注意:模板中所有文件名称前都会自动追加实体名称
字样。下载 示例模板
{{ Entity }}
标签用于展示内容、{% if %}
标签用于逻辑控制、{% raw %}
标签输出不做解析(注)
目前已支持的数据库
- Mysql
- SqlServer
- Oracle
- DM(达梦)
- PostgreSQL
界面展示
一、功能清单
名称 | 作用描述 |
---|---|
数据源 | 自行点击右侧配置按钮,配置数据连接 |
数据库 | 对应具体的数据库 Database |
数据表 | 对应数据库中的具体的 Table |
实体名称 | 对Table名称进行二次自定义,模板中实际使用值 |
命名空间 | 类的命令空间,模板有文件夹层级时,会自动追加 |
功能描述 | 对应功能描述,可用于对Controller的描述 |
二、预置参数
名称 | 作用描述 |
---|---|
_SpaceName | 命名空间 |
_TableName | 选择的某一个数据库表名 |
_TableComment | 选择的某一个数据库表的注释 |
_EntityName | 实体名称 |
_EntityFolder | 实体目录 |
_Columns | 表对应的所有列,见 三、_Columns属性 |
_Description | 功能描述 |
_Json | 自定义JSON参数(自动读取模板目录下的 template.json 文件) |
三、_Columns属性
名称 | 描述 | 类型 |
---|---|---|
name | 列名 | string |
comment | 备注 | string |
data_type | 程序内数据类型 | string |
data_type_code | 数据类型,示例:varchar | string |
column_type | 列类型,示例:varchar(512) | string |
char_length | 字符串长度,示例:512 | long? |
is_pri | 是否主键 | bool |
is_auto_increment | 是否自增 | bool |
is_nullable | 是否可空 | bool |
number_precision | 数值长度 | long? |
number_scale | 数值精度 | long? |
四、快捷键说明
按键 | 扩展按键 | 作用描述 |
---|---|---|
F2 | 目录:对选中的文件(夹)进行重命名 | |
F5 | Ctrl + R | 目录:刷新左侧文件(夹)树 |
Del | Ctrl + D | 目录:对选中的文件(夹)进行删除 |
Ctrl + C | Ctrl + V | 目录:复制(粘贴)选中的文件(夹) |
Ctrl + E | 目录:打开文件(夹)所在目录 | |
Ctrl + N | Ctrl + Shift + N | 目录:在选中的节点下,创建文件(夹) |
Ctrl + Shift + C | 目录:对选中的文件(夹)快速复制粘贴 | |
Enter | 目录:快速打开要编辑的文件(同:双击打开文件) | |
Ctrl + F | 编辑:在当前编辑的文件中进行高亮搜索 | |
Ctrl + D | 编辑:删除当前光标所在行的内容 | |
Ctrl + S | 编辑:对已修改的模板文件进行保存 | |
Ctrl + U | Ctrl + Shift + U | 编辑:对已选中的文本,进行字母小写(或大写)转换 |
ESC | 编辑:关闭正在编辑的文件 | |
Alt + ↑ | Alt + ↓ | 编辑:在文档中上(下)移动光标所在行的代码 |
Ctrl + Enter | Ctrl + Shift + Enter | 编辑:在文档中光标所在位置的上(下)行插入空行 |
Ctrl + i | 编辑:在文档中插入 {%- -%} | |
Ctrl + [ | 编辑:在文档中插入 {{ }} | |
Ctrl + J | 编辑:在文档中插入 {%- comment- %} {%- endcomment -%} |
示例:连接字符串
# MySql
Server=127.0.0.1;port=3306;database=test_db;user=test_user;password=test_password;
# SqlServer
server=127.0.0.1;uid=test_user;pwd=test_password;database=test_db;
# Oracle
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=test_service_name)));User Id=test_user;Password=test_password;
# DM(达梦)
Server=127.0.0.1:5236;User=test_user;Password=test_password;
# PostgreSQL
User ID=test_user;Password=test_password;Host=127.0.0.1;Port=5432;Database=postgres;
版本发行时间
Liquid 扩展语法
使用示例 | 作用描述 |
---|---|
{%- array my_array = ['apple', 'banana', 'cherry'] -%} | 标签:定义一个数组(array) |
{%- ternary boolVal ? 'Entity' : 'EntityBase' -%} | 三目运算符(标签用法) |
{{ boolVal | ternary: "111", "222" }} | 三目运算符(过滤器用法) |
{%- assign result = array1 | contains: "111" -%} | 数组 array1 是否包含指定元素 |
{%- assign result = array1 | contains_ignore_case: "111" -%} | 数组 array1 是否包含指定元素(忽略大小写) |
{%- assign result = array1 | any: array2 -%} | array1 包含 array2 中任意一项 |
{%- assign result = array1 | all: array2 -%} | array1 中包含 array2 的所有项 |
{%- assign result = array1 | downcase_array -%} | 字符串数组中项全部转小写 |
{%- assign result = array1 | upcase_array -%} | 字符串数组中项全部转大写 |
{%- assign result = array1 | index_of: "111" -%} | 查找数组中匹配项的第一个索引 |
{%- assign result = array1 | index_of_ignore_case: "111" -%} | 查找数组中匹配项的第一个索引(忽略大小写) |
{%- assign result = str | upper_camelcase -%} | 字符串转为 UpperCamelCase,并移除下划线 |
{%- assign result = str | lower_camelcase -%} | 字符串转为 LowerCamelCase,并移除下划线 |
{%- assign result = str | kebabize -%} | 将字符串中的大写字母转成小写,并在前添加 '-' |
{{ str1 | null_default: str2 }} | 当 str1 = null 时,返回默认值 str2 |
{%- assign result = array1 | intersect: array2 -%} | 数组 array1 与 array2 的交集 |
{%- assign result = array1 | except: array2 -%} | 数组 array1 与 array2 的差集 |
{%- assign result = array1 | except_ignore_case: array2 -%} | 数组 array1 与 array2 的差集(忽略大小写) |
{%- assign result = array1 | union: array2 -%} | 数组 array1 与 array2 的并集 |
{%- assign result = array1 | filter: array2 -%} | 筛选 array1 中包含的 array2 的所有项 |
{%- assign result = array1 | filter_ignore_case: array2 -%} | 筛选 array1 中包含的 array2 的所有项(忽略大小写) |
{%- assign result = array1 | match: "111" -%} | 匹配 array1 中指定项,存在返回值,不存在返回 null |
{%- assign result = array1 | match_ignore_case: "111" -%} | 匹配 array1 中指定项(忽略大小写) |
{%- assign result = str | starts_with: "apple" -%} | str 是否以特定字符串开头,支持:ignore_case |
{%- assign result = str | ends_with: "apple" -%} | str 是否以特定字符串结尾,支持:ignore_case |
{%- assign result = str | remove_stars_with: "apple" -%} | 移除 str 中特定字符串开头的内容,支持:ignore_case |
{%- assign result = str | remove_ends_with: "apple" -%} | 移除 str 中特定字符串结尾的内容,支持:ignore_case |
{%- include /template.json -%} | 导入文件,支持 【/】根目录、【./】当前目录、【../】上级目录(支持多级) |
THE END
二维码
打赏
文章目录
关闭
共有 0 条评论