数据类型的映射

神通数据库 JDBC驱动支持大多数由JDBC3.0规范所要求的类型。在类型映射中,我们将讨论JAVA类型、JDBC类型以及后台数据库类型是如何进行相互映射的。比如前台的String对应于JDBC类型中的那种,又对应于后台数据库中的那种类型。

表290 神通数据库数据类型。
序号 类型 描述 有效范围
1 tinyint 整型数据 [-128,127]
2 smallint 整型数据 [-32768, 32767]
3 int 整型数据 [-2147483648, 2147483647 ]
4 bigint 整型数据 [-9223372036854775808, 9223372036854775807]
5 bit 固定长度的位串数据

1,0最大长度限制是

8*8000bit

6 numeric 固定精度和小数位的数字数据  
7 decimal 固定精度和小数位的数字数据  
8 real 浮点精度数字 [-3.4E+38, 3.4E+38]
9

double

precision

浮点双精度数 [2.2250738585072014e-308,1.7976931348623158e+308]
10 float 浮点精度数字 [-1E+308, 1E+308]
11 char 固定长度的字符数据 最大长度为8000个字符
12 varchar 可变长度的字符数据 最大长度为8000个字符
13 text 可变长度的字符数据 最大长度为16777215个字节
14 binary 定长的二进制字串 最大长度为8000
15 varbinary 变长的二进制字串 最大长度为8000
16 boolean 布尔类型  
17 date 日期  
18 time 时间  
19 timestamp 时间戳  
20 clob 字符型大对象类型 理论上没有限制,可以达到4个G
21 blob 二进制大对象类型 理论上没有限制,可以达到4个G

神通数据库数据类型这一列列举了在数据库中的数据类型。

JDBC 类型这一列列举JDBC标准支持的,并在java.sql.Types类中有定义的类型。

标准JAVA类型这一列列举了在JAVA语言中定义的标准类型。

表291 神通数据库数据类型、JDBC类型和标准JAVA类型之间的映射。
序号 神通数据库 JDBC类型 标准JAVA类型
1 tinyint java.sql.Types.TINYINT byte
2 smallint java.sql.Types.SMALLINT short
3 int java.sql.Types.INT int
4 bigint java.sql.Types.BIGINT long
5 bit java.sql.Types.BIT boolean
6 numeric java.sql.Types.NUMERIC java.math.BigDecimal
7 decimal java.sql.Types.DECIMAL java.math.BigDecimal
8 real java.sql.Types.REAL float
9 double precision java.sql.Types.DOUBLE double
10 float java.sql.Types.FLOAT double
11 char java.sql.Types.CHAR java.lang.String
12 varchar java.sql.Types.VARCHAR java.lang.String
13 text java.sql.Types.LONGVARCHAR java.lang.String
14 binary java.sql.Types.BINARY byte[]
15 varbinary java.sql.Types.VARBINARY byte[]
16 boolean java.sql.Types.BOOLEAN boolean
17 date java.sql.Types.DATE java.sql.Date
18 time java.sql.Types.TIME java.sql.Time
19 timestamp java.sql.Types.TIMESTAMP java.sql.Timestamp
20 clob java.sql.Types.CLOB java.sql.Clob
21 blob java.sql.Types.BLOB java.sql.Blob

备注::

关于binary类型,如果用户插入的数据没有达到定义的长度,后台数据库会自动补0,故最后读出的byte数组的长度为定义时的长度。

关于char类型,如果用户插入的数据没有达到定义的长度,后台数据库会自动补空格,故最后读出的String对象的长度为定义时的长度。

关于bit类型,由于JDBC类型中的java.sql.Types.Bit对应于boolean,故最后读出的bit也为boolean类型。比如在数据库中插入的为B’,通过JDBC读的时候将判断是否为0,如果不为0,就返回true,否则返回false,对上述例子就返回true。