数据集
平台将某类数据的集合抽象为数据集,并提供统一的访问方式和接口。这些数据的集合包括数据库中的数据表、视图、存储过程等的返回结果,也包括自定义的 sql 和后端服务的返回结果。
数据集的作用:
- 通过它可以生成数据表,也可以将已有的数据表和视图导入为数据集
- 通过它可以生成数据组件,用于低代码开发
- 通过它可以生成 java 实体类,用于专业代码开发
数据集的类型
平台的数据集主要分为三种类型,分别是动态数据集、静态数据集和统计数据集。功能说明如下表所示。
类型 | 功能 |
---|---|
动态数据集 | 实现数据的增删改查,支持五类后端数据源,包括表、sql、视图、存储过程和服务 |
静态数据集 | 存储静态、字典数据。生成 vo,可用于服务的请求返回 |
统计数据集 | 无代码实现对动态数据集的分组统计,支持多表之间的关联查询 |
数据集的组成
一个数据集由三部分组成:数据集信息、列信息和映射信息。
数据集信息
数据集信息主要包括数据集名称和数据集标识。
- 数据集名称:用于界面显示,所以支持输入中文
- 数据集标识:用于在代码中使用数据集,所以只支持字母、下划线和数字,且必须以字母开头
列信息
一个数据集可以包括若干个列,每一列信息主要包括列名称、列标识、类型、是否必填、是否主键、是否版本锁。
- 列名称:用于界面显示,所以支持输入中文
- 列标识:用于在代码中使用列,所以只支持字母和数字,且必须以字母开头,不能使用数据库关键字
- 类型:用于标明列的类型,支持的类型见下表
数据集列类型 | MySQL数据类型 | Java类型 | 说明 |
---|---|---|---|
文本 | varchar(254) | String | 默认长度254,可设置 |
数字 | int(11) | Integer | 范围:-2147483648到+2147483647 |
含小数点数字 | double | Double | 浮点数,非精确数字 |
长数字 | bigint(20) | Long | |
精确数字 | decimal(10,5) | BigDecimal | 默认长度10,精度5,可设置 |
日期 | date | Date | |
日期时间 | datetime | Date | |
长文本 | mediumtext | String | |
图片 | mediumtext | String | 数据库中存储标识,文件存储到存储服务中 |
文件 | mediumtext | String | 同上 |
富文本 | mediumtext | String | 数据库中存 html 源码和文件标识,文件存储到存储服务中 |
- 是否必填:存储数据时,该列必须有值
- 是否主键:数据集默认一列主键,可以取消主键列,也可以设置多列为主键列
- 是否版本锁:数据集增加一列数字类型的列,用于实现乐观锁的能力,避免更新冲突
映射信息
数据集的名称和数据表的名称,以及列的名称和字段的名称可以不同,通过配置映射信息将他们二者对应起来。
- 数据库表名:系统默认生成的数据表名和数据集名不同,数据表名=模块名数据集名,比如 main 模块的表名都是以 main\ 开头。如需修改系统默认生成的表名,设置数据库表名即可
- 数据库字段名:当某些列名和字段名不一致时,设置数据库字段名即可实现映射
数据集的命名规则
常用的命名风格有:小驼峰、大驼峰和蛇式三种,见下表。
命名风格 | 例子 | 说明 |
---|---|---|
小驼峰 | saleOrder | 适用于数据集标识和数据表名称 |
大驼峰 | SaleOrder | 适用于Java类名 |
蛇式 | sale_order | 适用于数据表名称 |
关于小驼峰、大驼峰、蛇式
- 数据集标识使用小驼峰,"命名风格" 选项只影响数据库表和字段的命名,不影响 Java 类的命名
- 系统自动生成大驼峰的 Java 类
- 使用蛇式命名风格,系统自动生成蛇式命名的数据表名
- 使用小驼峰命名风格,系统自动生成小驼峰命名的数据表名
关于单数和复数
- 数据集标识和 Java 类名均使用单数形式
- 数据表名可以使用单数形式,如需使用复数形式,通过设置映射信息实现
例如:小驼峰的数据集标识,生成大驼峰的 Java 类,生成复数的数据表名
数据集标识 | Java类名 | 数据表名 |
---|---|---|
saleOrder | SaleOrder | sale_orders |
小驼峰的列标识,生成蛇式的字段名称
数据集列标识 | 数据表字段名 |
---|---|
orderDate | order_date |
数据集的模型描述文件
数据集的具体结构描述存储在一个后缀名为 data.m 的文件内,data.m 文件位于模块目录下,例如在 main 模块下添加订单数据集,如下图所示:
在 service/main 目录下就会产生 saleOrder.data.m 文件,如下图所示