天行有常,不为尧存,不为桀亡。——荀子《天论》
数据库列类型的元数据文件定义主要位于项目ox-plugin/infix-db/infix-xxx
中,目前包含:
定义文件位于:src/main/resources/engine/database/sql/XXX/schema.json
中,其中XXX表示当前数据库的类型,类型定义位于源文件io.vertx.up.eon.em.DatabaseType
中,目前的版本定义如下:
public enum DatabaseType {
/* MySQL */
MYSQL5, // MySQL 5.x
MYSQL8, // MySQL 8.x
MYSQL, // Old Version
/* Oracle */
ORACLE, // Old Version
ORACLE11, // 11
ORACLE12, // 12
}
schema.json的文件格式为 JSON 对象格式({}
),主要包含下边几个节点:
节点名称 | 含义 |
---|---|
definitions | 数据库的类型定义,描述模型类型到数据库列类型。 |
supports | 数据库可支持的列类型(生成SQL语句用)。 |
mappings | 数据库列转换定义,定义了数据库列类型可支持的转换。 |
该文件的片段信息如下:
{
"definitions": {
"BOOLEAN": "BOOL",
"INT": "INTEGER",
"....": "...."
},
"supports": [
"CHAR",
"VARCHAR",
"....",
],
"mappings": {
"BIT": [
"BIGINT",
"BINARY",
"....",
]
"....": [
"...."
]
}
}
Java类型和模型目前支持如下:
Java数据类型 | 模型类型 |
---|---|
java.lang.Boolean | BOOLEAN |
java.lang.Integer | INT |
java.lang.Long | LONG |
java.math.BigDecimal | DECIMAL |
java.time.LocalDate | DATE1 |
java.time.LocalDateTime | DATE2 |
java.lang.Long | DATE3 |
java.lang.LocalTime | DATE4 |
java.lang.String | STRING1 |
java.lang.String | STRING2 |
java.lang.String | JSON |
java.lang.String | XML |
java.lang.String | SCRIPT |
java.nio.Buffer | BINARY |