关于不同数据类型在不同数据库的适配
最后更新:2024-09-06 05:30:00
|
状态:未完成
*TypeMetadataAlias类中维护了 每个数据类型在每个数据库中对应的实际类型以及长度、有效位数、小数位数的支持
如mysql环境中在设置类型时调用column.setType("DOUBLE(10)")
会先到alias中找到DOUBLE在mysql对应的的实际类型
再判断是否支持长度、有效位数、小数位数
格式如下
如mysql环境中在设置类型时调用column.setType("DOUBLE(10)")
会先到alias中找到DOUBLE在mysql对应的的实际类型
再判断是否支持长度、有效位数、小数位数
格式如下
枚举变量 代码中输入的类型 对应的标准类型 是否忽略 长度、有效位、小数位 ILLEGAL表示不支持,会抛出异常 (0:不忽略必须有; 1:忽略; 2:有值就不忽略,没值就忽略; 3:有效位与小数位相互依赖,少一个值就全忽略或者说要么都有要么都没有) TINYTEXT ("TINYTEXT" ,StandardTypeMetadata.TINYTEXT , 1, 1, 1), VARBINARY ("VARBINARY" ,StandardTypeMetadata.VARBINARY , 0, 1, 1), VARCHAR ("VARCHAR" ,StandardTypeMetadata.VARCHAR , 0, 1, 1), YEAR ("YEAR" ,StandardTypeMetadata.YEAR , 1, 1, 1), ACLITEM ("ACLITEM" ,StandardTypeMetadata.NONE ), AGG_STATE ("AGG_STATE" ,StandardTypeMetadata.NONE ), AGGREGATE_METRIC_DOUBLE ("aggregate_metric_double" ,StandardTypeMetadata.NONE ), ALIAS ("alias" ,StandardTypeMetadata.NONE ), ARRAY ("ARRAY" ,StandardTypeMetadata.NONE ), BFILE ("BFILE" ,StandardTypeMetadata.ILLEGAL , -1, -1, -1), BIGSERIAL ("BIGSERIAL" ,StandardTypeMetadata.BIGINT , 1, 1, 1), BINARY_DOUBLE ("BINARY_DOUBLE" ,StandardTypeMetadata.DOUBLE , 1, 3, 3), BINARY_FLOAT ("BINARY_FLOAT" ,StandardTypeMetadata.FLOAT , 1, 2, 3), INTERVAL_DAY_MINUTE ("INTERVAL DAY TO MINUTE" ,StandardTypeMetadata.NONE ), INTERVAL_DAY_SECOND ("INTERVAL DAY TO SECOND" ,StandardTypeMetadata.NONE ), INTERVAL_HOUR ("INTERVAL HOUR" ,StandardTypeMetadata.NONE ),