2016-04-24 3 views
0

SQLite hat einige Datentypen: NULL, INTEGER, REAL, TEXT, BLOBWie ordnen sich SQLite-Datentypen Java zu? nur

Inzwischen hat die JDBC hat:

-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) 

ich keine Dokumentation überall für die SQLite-spezifischen JDBC-Treiber finden, und ich muss wissen, wie Der Fahrer ordnet die Typen zu.

Offensichtlich null ist null,
integer ganze Zahl ist (wahrscheinlich),
real ist real (wahrscheinlich),
aber was tun Text und Blob-Karte?

+0

Es gibt mehrere SQLite JDBC-Treiber. Aber ist es möglich, dass Sie gerade einen auf Ihrem Computer haben? –

+0

Ich verwende den Xerial-Treiber über IntelliJ IDEA speziell. –

Antwort

1

SQLite verwendet dynamische Typisierung.

Der Xerial-Treiber kombiniert den deklarierten Namen des Spaltentyps und den tatsächlichen Typ des Werts, um den JDBC-Typ zu bestimmen. siehe die implementation of getColumnType(). Sie erhalten den JDBC-Typ, wenn der Typ des Spaltennamen in der folgenden Liste enthalten ist, und wenn der tatsächliche Typ entspricht:

 
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 

Andernfalls Sie NULL erhalten.