Sorolja fel a JDBC-ben használt fő adattípusokat, és magyarázza el, hogyan kapcsolódnak a Java adattípusokhoz.
sobes.tech MI
Válasz az MI-től
| SQL-adattípus | Java-adattípus | Leírás |
|---|---|---|
CHAR, VARCHAR, LONGVARCHAR |
String |
Karakterláncok |
NUMERIC, DECIMAL |
BigDecimal |
Fixpontos számok |
BIT, BOOLEAN |
boolean |
Logikai értékek |
TINYINT |
byte |
Egész szám -128-tól 127-ig |
SMALLINT |
short |
Egész szám -32768-tól 32767-ig |
INTEGER |
int |
Egész szám |
BIGINT |
long |
Nagy egész szám |
REAL |
float |
Egyszeres pontosságú lebegőpontos szám |
FLOAT, DOUBLE |
double |
Kétszeres pontosságú lebegőpontos szám |
BINARY, VARBINARY, LONGVARBINARY |
byte[] |
Bináris adatok |
DATE |
java.sql.Date |
Dátum (év, hónap, nap) |
TIME |
java.sql.Time |
Idő (óra, perc, másodperc) |
TIMESTAMP |
java.sql.Timestamp |
Dátum és idő milliszekundum pontossággal |
BLOB |
java.sql.Blob |
Nagy bináris objektum |
CLOB |
java.sql.Clob |
Nagy szöveges objektum |
ARRAY |
java.sql.Array |
Tömb értékek |
STRUCT |
java.sql.Struct |
Strukturált típus |
REF |
java.sql.Ref |
Referencia strukturált típusra |
DATALINK |
java.net.URL |
Külső erőforrás hivatkozás |
JAVA_OBJECT |
Object |
Java serializált objektum (a megvalósítástól függ) |
ROWID |
java.sql.RowId |
Sor azonosító (az SGBD-től függ) |
NCHAR, NVARCHAR, LONGNVARCHAR |
String |
Nemzetközi karakterláncok |
NCLOB |
java.sql.NClob |
Nemzetközi nagy szöveges objektum |
SQLXML |
java.sql.SQLXML |
XML-adatok |
A JDBC (Java Database Connectivity) szabványosítja az SQL típusokat a java.sql.Types osztályban. Ezek a típusok numerikus állandók. A JDBC-illesztőprogramok ezeket az SQL-típusokat megfeleltetik a Java típusoknak az adatok olvasásakor (getXXX() metódusok a ResultSet-ből) és írásakor (setXXX() metódusok a PreparedStatement-ben).
Az illesztés attól függ, hogy az adott adatbázis JDBC-illesztőprogramja hogyan valósítja meg a belső adat típusok és a java.sql.Types közötti leképezést, majd a Java típusokra. Ez a leképezés dokumentálva van a JDBC-specifikációban, és kis mértékben eltérhet az illesztőprogramok között, de a táblázatban szereplő fő leképezések standardok.
Adatok olvasása a ResultSet-ből például:
// Feltételezve, hogy rs egy ResultSet
String name = rs.getString("column_name_varchar");
int id = rs.getInt("column_name_integer");
BigDecimal value = rs.getBigDecimal("column_name_numeric");
Date date = rs.getDate("column_name_date");
Paraméterek beállítása a PreparedStatement-ben például:
// Feltételezve, hogy pstmt egy PreparedStatement
String name = "Test Name";
int id = 123;
BigDecimal value = new BigDecimal("100.50");
Date date = new Date(System.currentTimeMillis());
pstmt.setString(1, name); // 1. paraméter pozíciója (1-től kezdődik)
pstmt.setInt(2, id);
pstmt.setBigDecimal(3, value);
pstmt.setDate(4, date);
A JDBC a maximális kompatibilitás biztosítására törekszik, de speciális vagy gyártófüggő típusok esetén lehetnek különleges megközelítések, például a getObject() / setObject() használata típuskonverzióval vagy instanceof ellenőrzésekkel.