数据集规则
数据集中有些列的值是有要求的,比如不能为空、是手机号、邮箱地址、身份证号等,又比如数据中记录的是创建时间,最后修改时间等。
针对这些需求,系统提供三种数据集规则实现相应的功能,分别是计算规则、约束规则和忽略规则。
规则分类
规则分类 | 功能 | 应用场景 |
计算规则 | 设置列的默认值 | 前端传入值,使用前端的值,前端没有传值,使用默认值 |
设置列的固定值 | 不管前端有没有传值,都使用固定值 | |
根据其他列的值,计算出本列的值 | 有计算需求的列,例如金额=单价*数量 | |
新增时赋值,修改时不赋值 | 仅在新增时写入创建时间 | |
新增时不赋值,修改时赋值 | 仅在更新时写入最后修改时间 | |
约束规则 | 对值进行校验,不符合规则,不能保存,有错误提示,有校验顺序 | 不能为空,校验手机号、邮箱地址、身份证号 |
忽略规则 | 新增或修改数据时,不写入数据表 | 使用数据库函数,例如自增列 |
计算规则
一个数据列只能设置一个计算规则,一个计算规则提供4个计算时机的选项和一个计算表达式。
计算时机的选项分别是:插入时计算、更新时计算、传值时计算和未传值时计算。插入时计算和更新时计算必须选择其一或全选,传值时计算和未传值时计算也必须选择其一或全选。计算表达式是 Spring 表达式。
设置入口(点击表页签的数据集参数下方的+号,选择“数据集规则”):
下面展示几个案例:
- 设置默认值为当前时间
- 设置创建时间
- 设置最后修改时间
- 计算金额等于单价乘以数量
约束规则
一个数据列设置一个约束规则,一个约束规则可以包括多个校验函数,通过校验函数实现验证数据的合法性。每个校验函数包括参数、校验失败时的提示和校验顺序。通过设置校验顺序控制校验函数的执行次序。
系统提供的校验函数如下
函数名 | 参数 | 说明 |
---|---|---|
数值范围 | min 最小值 max 最大值 | 在最小值和最大值之间 |
整数最大值 | value 指定值 | 验证值是否小于等于 value |
整数最小值 | value 指定值 | 验证值是否大于等于 value |
浮点数最大值 | value 指定值 | 验证值是否小于等于 value |
浮点数最小值 | value 指定值 | 验证值是否大于等于 value |
数字格式 | integer 整数位数 fraction 小数位数 | 验证值的整数位数和小数位数上限 |
非空 | 验证值不是 null | |
是空 | 验证值是 null | |
字符串非空 | 验证字符串长度不为0、集合大小不为0 | |
字符串长度 | min 最小值 max 最大值 | 验证字符串长度是否在 min 和 max 区间内 |
过去时间 | 验证是否比当前时间早 | |
未来时间 | 验证是否比当前时间晚 | |
邮件地址验证 | 验证值是否是 Email 格式 | |
一个或多个常量值 | v 常量字符串数组 | 验证值是否在常量字符串数组内 |
正则表达式 | regex 正则表达式 flag 标志 | 验证是否满足正则表达式,flag 参考 Pattern.compile(String regex, int flag)方法中的flag |
Spring表达式 | Spring 表达式,表达式中使用“#列标识”获取列值 | 验证是否满足 Spring 表达式,例如订单编号必须以 DD 开头,#orderNo.substring(0,2)=="DD" |
下面展示几个案例
- 验证非空
- 验证手机号——使用正则表达式
- 验证输入内容——使用常量数组
- 验证输入内容——使用 Spring 表达式
忽略规则
一个数据列有一个忽略规则,可以忽略新增,也可以忽略更新。忽略的意思是不管这一列有没有值,包括前端传入值,或计算规则的计算值,这一列都不会被提交到数据库。
例如,在数据表中设置了自增字段,此时就需要设置忽略规则,不将这一列的数据提交到数据库。
访问规则
每个数据列都可以设置允许访问或禁止访问。对于数据集来说如果设置了某些列是允许访问的,则其他列不允许访问,不设置则所有列都可访问。如果设置了某些列是禁止访问的,则这些列不允许访问。