Sobes.tech
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:

  • BOOLEAN
  • TINYINT
  • SMALLINT
  • INTEGER
  • BIGINT
  • REAL
  • FLOAT
  • DOUBLE
  • DECIMAL
  • NUMERIC
  • CHAR
  • VARCHAR
  • LONGVARCHAR
  • DATE
  • TIME
  • TIMESTAMP
  • BINARY
  • VARBINARY
  • LONGVARBINARY
  • BLOB
  • CLOB
  • NCHAR
  • NVARCHAR
  • LONGNVARCHAR
  • NCLOB
  • SQLXML

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