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映射到了什么?
答案 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。