SQLite数据类型如何映射到Java?

时间:2016-04-24 21:21:00

标签: java sqlite jdbc sqldatatypes

SQLite只有几种数据类型:NULL, INTEGER, REAL, TEXT, BLOB

同时,JDBC有:

-7  BIT,  
-6  TINYINT,  
-5  BIGINT,  
-4  LONGVARBINARY,  
-3  VARBINARY,  
-2  BINARY,  
-1  LONGVARCHAR, 
0   NULL,  
1   CHAR,  
2   NUMERIC,  
3   DECIMAL,  
4   INTEGER,  
5   SMALLINT,  
6   FLOAT,  
7   REAL,  
8   DOUBLE,  
12  VARCHAR,  
91  DATE,  
92  TIME,  
93  TIMESTAMP,   
1111    OTHER.  
(possibly more)

我无法在SQLite特定的JDBC驱动程序的任何地方找到任何文档,我需要知道驱动程序如何映射这些类型。

显然null为null,
整数是整数(可能),
真实的(可能),
但是文本和blob映射到了什么?

1 个答案:

答案 0 :(得分:1)

SQLite使用动态类型。

Xerial驱动程序结合声明的列类型名称和值的实际类型来确定JDBC类型;见implementation of getColumnType()。 如果列的类型名称在以下列表中,则获取JDBC类型,如果实际类型匹配,则获取

BOOLEAN
TINYINT
SMALLINT
INT2
BIGINT
INT8
UNSIGNED BIG INT
DATE
DATETIME
INT
INTEGER
MEDIUMINT
DECIMAL
DOUBLE
DOUBLE PRECISION
NUMERIC
REAL
FLOAT
CHARACTER
NCHAR
NATIVE CHARACTER
CLOB
DATE
DATETIME
VARCHAR
VARYING CHARACTER
NVARCHAR
TEXT
BINARY
BLOB

否则,你得到NULL。