Coverage Summary for Class: KColumnType (com.kotlinorm.enums)
Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
KColumnType |
100%
(2/2)
|
|
100%
(44/44)
|
100%
(321/321)
|
KColumnType$Companion |
0%
(0/1)
|
0%
(0/2)
|
0%
(0/1)
|
0%
(0/19)
|
Total |
66.7%
(2/3)
|
0%
(0/2)
|
97.8%
(44/45)
|
94.4%
(321/340)
|
/**
* Copyright 2022-2025 kronos-orm
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.kotlinorm.enums
/**
* Column types.
*/
enum class KColumnType(val type: String) {
UNDEFINED("UNDEFINED"), // 未定义
BIT("BIT"), // 存储 0/1
TINYINT("TINYINT"), // 整数值(没有小数点),精度 3。
SMALLINT("SMALLINT"), // 整数值(没有小数点)。精度 5。
INT("INT"), // 整数值(没有小数点)。精度 p。
BIGINT("BIGINT"), // 整数值(没有小数点)。精度 19。
REAL("REAL"), // 近似数值,尾数精度 7。
FLOAT("FLOAT"), // 近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成。
DOUBLE("DOUBLE"), // 近似数值,尾数精度 16。
DECIMAL("DECIMAL"), // 精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2 位数的数字。
CHAR("CHAR"), // 字符/字符串。固定长度 n。
VARCHAR("VARCHAR"), // 字符/字符串。可变长度。最大长度 n。
TEXT("TEXT"), // 字符/字符串。可变长度。
LONGTEXT("LONGTEXT"), // 字符/字符串。可变长度。
DATE("DATE"), // 存储年、月、日的值。
TIME("TIME"), // 存储小时、分、秒的值。
DATETIME("DATETIME"), // 存储年、月、日、小时、分、秒的值。
TIMESTAMP("TIMESTAMP"), // 存储年、月、日、小时、分、秒的值。
BINARY("BINARY"), // 二进制串。固定长度 n。
VARBINARY("VARBINARY"), // 二进制串。可变长度。最大长度 n。
LONGVARBINARY("LONGVARBINARY"), // 二进制串。可变长度。
BLOB("BLOB"), // 二进制串。可变长度。
CLOB("CLOB"), // 二进制串。可变长度。
JSON("JSON"), // 存储 JSON 数据
ENUM("ENUM"), // 存储枚举值
NVARCHAR("NVARCHAR"), // 字符/字符串。可变长度。最大长度 n。
NCHAR("NCHAR"), // 字符/字符串。固定长度 n。
NCLOB("NCLOB"), // 二进制串。可变长度。
UUID("UUID"), // 二进制串。可变长度。
SERIAL("SERIAL"), // 整数值(没有小数点),精度 p。
YEAR("YEAR"), // 存储年份
MEDIUMINT("MEDIUMINT"), // 整数值(没有小数点),精度 3。
NUMERIC("NUMERIC"), // 精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同)
MEDIUMTEXT("MEDIUMTEXT"), // 字符/字符串。可变长度。
MEDIUMBLOB("MEDIUMBLOB"), // 二进制串。可变长度。
LONGBLOB("LONGBLOB"), // 二进制串。可变长度。
SET("SET"), // 一个元素的固定长度的有序集合
GEOMETRY("GEOMETRY"), // 二进制串。可变长度。
POINT("POINT"), // 二进制串。可变长度。
LINESTRING("LINESTRING"), // 二进制串。可变长度。
XML("XML"), // 存储 XML 数据
CUSTOM_CRITERIA_SQL("CUSTOM_CRITERIA_SQL"), // 用于where查询的由String.asSql()产生的自定义SQL Field类型
SQL_FUNCTION("SQL_FUNCTION"); // 用于查询操作时使用内置的一些SQL函数的类型
companion object {
fun fromString(type: String): KColumnType {
return entries.firstOrNull { it.name == type.uppercase() } ?: UNDEFINED
}
}
}