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

标签 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 映射到什么?

最佳答案

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/

相关文章:

django - "Unknown command syncdb"运行 "python manage.py syncdb"

java - 在Sqlite room中写行查询

sqlite - SQLite 中的 sqlite3.connect 和 close 有多贵?

java - postgresql 查询的大型结果集

java - 使用Arraylist显示另一个类中一个类的 'items'

java - 当指定多个条件锁定时会出现死锁

java - PreparedStatement 会转义哪些字符?

java - 如何在java中插入sql查询

java - 无法使用 Java 程序从控制台中提取字符串

java - 提供具有相同文件分割的 map 分割