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 映射到什么?
最佳答案
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。
关于java - SQLite 数据类型如何映射到 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36829026/