JAVA数据类型对应DM数据库类型
数据类型转换问题经常出现在数据库迁移后应⽤程序适配过程中。以下为JAVA与DM数据库类型的映射关系:
序
号JAVA类型DM
1BIGDECIMAL NUMBER\NUMERIC\DECIMAL\DEC
2STRING CHAR\CHARACTER\VARCHAR\VARCHAR2\LONGVARCHAR
3BOOLEAN BIT
4INTEGER INTEGER\INT
5LONG BIGINT
6BYTE TINYINT\BYTE
7SHORT SMALLINT
8byte[] BINARY\VARBINARY
9DOUBLE FLOAT\DOUBLE\DOUBLE PRECISION
10FLOAT REAL
11DATE DATE
12TIMESTAMP TIMESTAMP\DATETIME
13TIME TIMESTAMP
14DmdbTimestamp TIME WITH TIME ZONE
15DmdbNClob TEXT\CLOB
16DmdbBlob BLOB
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
位串数据类型 BIT:⽤于存储整数数据 1 、 0 或 NULL ,只有 0 才转换为假,其他⾮空、⾮0 值都会⾃动转换为真
4、JAVA-INTEGER
整型 INTEGER\INT:⽤于存储有符号整数,精度为 10 ,标度为 0 。取值范围为: -2147483648 ~+2147483647。
5、JAVA-LONG
长整型 BIGINT:⽤于存储有符号整数精度为 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
bigdecimal转换为integer⼀般⽇期时间数据类型 DATE:包括年、⽉、⽇信息,定义了 '4712-01-01' 和 '9999-12-31' 之间任何⼀个有效的格⾥⾼利⽇期。
12、JAVA-TIMESTAMP
⼀般⽇期时间数据类型 TIMESTAMP\DATETIME:包括年、⽉、⽇、时、分、秒信息,定义了⼀个在 '4712-01-01
00:00:00.000000' 和 '9999-12-31 23:59:59.999999' 之间的有效格⾥⾼利⽇期时间。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论