Sobes.tech
Middle

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.