定义
1. 全局定义
示例代码
import { setup } from 'oor';
import { logger } from './custom_loggers'
// 全局定义
setup({
provider: () => ClientBase | Pool,
pageSize: 10,
showSQL: logger.debug;
strict: true,
})
参数说明
定义 |
类型 |
说明 |
默认 |
provider |
() => ClientBase | Pool |
数据源,建议使用 Pool |
必选 |
pageSize |
number |
分页查询时,每页的长度 |
10 |
showSQL |
(sql:string,param:any)=>void |
SQL语句打印方法,用于调试 |
null |
strict |
boolean, 支持单独指定 |
query : 严格查询 ,entity : 严格插入/修改 开户时 : 有参数错误将抛出异常 关闭时 : 有参数错误将忽略错误参数 |
false |
2. 表定义
示例代码
const User = new Table('public.user', UserSchema, {
key: 'id', // 主键, 默认为 'id'
sortOrder: 'lastModify', // 默认排序字段, 默认为 ${主键}
sortBy: 'desc'; // 默认排序方法,默认为 'desc'
pageSize: 10, // 默认分页大小,默认先取全局
globalCondition: [ // 查询过滤条件,将应用到所有查询上
{ field: 'id', condition: '!=', 'value': 1 }
]
});
参数说明
定义 |
类型 |
说明 |
默认 |
key |
string |
主键, 默认为 'id' |
id |
sort |
Sort |
默认排序字段 |
|
pageSize |
number |
默认分页大小 |
10 |
globalCondition |
WhereItem[] |
查询过滤条件,将应用到所有查询上 |
|
3. 字段定义
示例代码
const UserSchema = UType.Table({
// 字段定义 遵循基础 typebox 定义
// 可用于验证,创建默认值等
// 参见 https://github.com/sinclairzx81/typebox
id: UType.Integer(),
// 使用 UType 等同于使用 Type, 但只提供了五种类型 :
// String, Number, Interger, Boolean, Boolean
// UType.Table 等同于 Parital<Object>
name: UType.String({ maxLength: 32 }),
sex: UType.Boolean(),
// 以上有点废话,以下是正文
// 定义 ignore: true ,可以使 sql 查询 时,不查以字段
// 建议 在长文本等不需要显示给用户的列进行定义
profile: UType.String({ ignore: true }),
// 当 字段名 和 数据表列名称 不同时
// 需要定义 column : string
phoneNo: UType.String({ column: 'phone_no' }),
// 如果使用逻辑删除,即通过标记数据状态来定义数据删除时
// 可定义 delMark,定义后:
// 1. 删除操作将会更新字段为指定的指
// 2. 查询,修改,删除将会 过滤掉此值,比如 WHERE status != 999
// delMark 不支持 Boolean, Date 类型
// 一个 Table 仅支持一个 delMark
status: UType.Integer({ delMark: 999 }),
// 如果一个 Date,创建记录时给定当时时间,后面不能变动
// 可定义 isCreate: true , 仅在 Date 类型有效
registerDate: UType.Date({ column: 'register_date', isCreate: true }),
// 如果一个 Date,每次修改时都会更新时间
// 可定义 isModify: true , 仅在 Date 类型有效
lastModify: UType.Date({ column: 'last_modify', isModify: true })
});
参数说明
定义 |
支持类型 |
说明 |
默认 |
ignore |
全部 |
不要出现在 SELECT 子句内: SELECT {fields} FROM |
false |
column |
全部 |
数据表实际列名,与字段名不同时需要指定 |
与字段名相同 |
delMark |
String, Number |
逻辑删除标记,一个 Table 仅能定义一个字段 |
|
isCreate |
Date |
isCreate = true 时,创建时自动赋值为服务器日志,修改时会过滤此字段 |
false |
isModify |
Date |
isModify = true 时,每次修改都会更新此字段 |
false |