Junior
Uveďte hlavní datové typy používané v JDBC a vysvětlete, jak souvisejí s datovými typy v Javě.
sobes.tech AI
Odpověď od AI
Hlavní datové typy JDBC jsou definovány ve třídě java.sql.Types. Představují standardní SQL typy. JVM datové typy jsou definovány v specifikaci jazyka Java. JDBC poskytuje mapování (mapping) mezi těmito dvěma sadami typů.
Hlavní typy v java.sql.Types:
BOOLEANTINYINTSMALLINTINTEGERBIGINTREALFLOATDOUBLEDECIMALNUMERICCHARVARCHARLONGVARCHARDATETIMETIMESTAMPBINARYVARBINARYLONGVARBINARYBLOBCLOBNCHARNVARCHARLONGNVARCHARNCLOBSQLXML
Mapování mezi typy JDBC a typy Java při získávání dat (z ResultSet):
| JDBC typ | Java typ (get) |
Poznámky |
|---|---|---|
BOOLEAN, BIT |
boolean |
|
TINYINT |
byte |
|
SMALLINT |
short |
|
INTEGER |
int |
|
BIGINT |
long |
|
REAL |
float |
|
FLOAT, DOUBLE |
double |
|
DECIMAL, NUMERIC |
java.math.BigDecimal |
Doporučeno |
CHAR, VARCHAR, LONGVARCHAR |
String |
|
DATE |
java.sql.Date |
|
TIME |
java.sql.Time |
|
TIMESTAMP |
java.sql.Timestamp |
|
BINARY, VARBINARY, LONGVARBINARY |
byte[] |
|
BLOB |
java.sql.Blob |
|
CLOB |
java.sql.Clob |
|
NCHAR, NVARCHAR, LONGNVARCHAR |
String |
|
NCLOB |
java.sql.NClob |
|
SQLXML |
java.sql.SQLXML |
Poznámka: Pro numerické typy, kromě primitivních typů, lze použít odpovídající obalové třídy (Boolean, Byte, Short, Integer, Long, Float, Double) pro zpracování hodnot NULL.
Mapování při nastavování dat (v PreparedStatement): obvykle se používá opačné mapování, ale existují výjimky a preference. Například pro DECIMAL je lepší používat BigDecimal.
Příklad použití:
// Metoda pro získání dat z ResultSet
public String getStringValue(ResultSet rs, String columnName) throws SQLException {
// Získání řetězcové hodnoty ze sloupce
return rs.getString(columnName);
}
// Metoda pro nastavení parametru v PreparedStatement
public void setIntValue(PreparedStatement ps, int parameterIndex, int value) throws SQLException {
// Nastavení celočíselné hodnoty
ps.setInt(parameterIndex, value);
}