数据库迁移后的APP应用程序匹配过程中经常出现数据类型转换问题。 以下是JAVA与DM数据库类型之间的映射关系:
序列号JAVA类型DM1bigdecimal number\numeric\decimal\de C2 string char\character\varchar varchar2\ long varchar3bobor byte7short smallint8byte [ ] binary\varbinary9double float\double\double precision 10 floatrecision datetime 13 time timestamp
1、JAVA-BIGDECIMAL
java.math.BigDecimal是一个操作数类,有效位数至少为Java提供的16位,用于高精度计算,是一个针对大小数的处理类。 在需要数字精度的场景中,建议使用BigDecimal类,该类支持任意精度的点数,并且可以准确计算货币值等。
在DM数据库中,NUMBER\NUMERIC\DECIMAL\DEC的所有四种数据类型都对应于BIGDECIMAL。
精确的数字数据类型NUMBER\NUMERIC\DECIMAL\DEC :精度范围从1到38,如果该值超过精度,DM将返回错误消息;如果超过比例,多余的位将被截断。
2、JAVA-STRING
字符数据类型CHAR\CHARACTER :指定固定长度字符串。 在基表中定义CHAR类型的列时,最大存储长度由数据库的页面大小决定。 如果未指定长度,则默认值为1。
字符数据类型VARCHAR\VARCHAR2:如果在基表中未指定USING LONG ROW存储选项,则插入VARCHAR数据类型的实际最大存储长度由数据库页面大小决定。 如果指定了USING LONG ROW存储选项,则插入的VARCHAR数据类型的长度不受数据库页面大小的限制,为32767
多媒体数据类型字符串LONGVARCHAR:TEXT是可变长度字符串类型。 字符串的长度最多为2G-1。 DM利用这个保存长字符串。
3、JAVA-BOOLEAN
位串数据类型位:用于存储整数数据1、0或NULL,只有0转换为假,其他非NULL值、非0值自动转换为真
4、JAVA-INTEGER
整数类型INTEGER\INT :用于存储有符号整数。 精度为10,比例为0。 值的范围为- 2147483648到2147483647。
5、JAVA-LONG
长整数位:用于存储带符号整数精度19、比例0。 值的范围为- 9223372036854775808到9223372036854775807
6、JAVA-BYTE
TINYINT\BYTE :用于存储有符号整数。 精度为3,比例为0。 值的范围为- 128到127。
7、JAVA-SHORT
SMALLINT :用于存储有符号整数。 精度为5,比例为0。 值的范围为- 32768到32767。
8、JAVA-byte[] byte数组
BINARY :用于存储固定长度二进制数据。 默认长度为1字节。 最大长度由数据库的页面大小决定。
VARBINARY :用于存储可变长度二进制数据。
9、JAVA-DOUBLE
近似数值数据类型FLOAT\DOUBLE\DOUBLE PRECISION :二进制精度的浮点数。 精度值的设定用于保证数据移植的兼容性,实际精度固定在梦的内部。 精度在范围(1~126 )时忽略精度,超过范围时直接报告错误。 取值范围
10、JAVA-FLOAT
近似数值数据类型REAL :具有二进制精度的浮点数,但不能指定用户使用的精度。 二进制精度指定为24,十进制精度指定为7。 取值范围
11、JAVA-DATE
常规日期和时间数据类型DATE :包含年、月、日信息,并定义了’ 4712-01-01 ‘和’ 9999-12-31 ‘之间的有效清爽手套日期。
12、JAVA-TIMESTAMP
常规日期时间数据类型TIMESTAMP\DATETIME :包含年、月、日、时、分、秒信息,分别为“4712-01-0100336000336000.000000”和“999-12-312333333333
极速赛车五码稳赢技巧TE :用于存储有符号整数。 精度为3,比例为0。 值的范围为- 128到127。
7、JAVA-SHORT
SMALLINT :用于存储有符号整数。 精度为5,比例为0。 值的范围为- 32768到32767。
8、JAVA-byte[] byte数组
BINARY :用于存储固定长度二进制数据。 默认长度为1字节。 最大长度由数据库的页面大小决定。
VARBINARY :用于存储可变长度二进制数据。
9、JAVA-DOUBLE
近似数值数据类型FLOAT\DOUBLE\DOUBLE PRECISION :二进制精度的浮点数。 精度值的设定用于保证数据移植的兼容性,实际精度固定在梦的内部。 精度在范围(1~126 )时忽略精度,超过范围时直接报告错误。 取值范围
10、JAVA-FLOAT
近似数值数据类型REAL :具有二进制精度的浮点数,但不能指定用户使用的精度。 二进制精度指定为24,十进制精度指定为7。 取值范围
11、JAVA-DATE
常规日期和时间数据类型DATE :包含年、月、日信息,并定义了’ 4712-01-01 ‘和’ 9999-12-31 ‘之间的有效清爽手套日期。
12、JAVA-TIMESTAMP
常规日期时间数据类型TIMESTAMP\DATETIME :包含年、月、日、时、分、秒信息,分别为“4712-01-0100336000336000.000000”和“999-12-312333333333