Sobes.tech
Junior

Uveďte hlavné dátové typy používané v JDBC a vysvetlite, ako sú spojené s dátovými typmi v Jave.

sobes.tech AI

Odpoveď od AI

Hlavné dátové typy JDBC sú definované v triede java.sql.Types. Predstavujú štandardné SQL typy. JVM dátové typy sú definované v špecifikácii jazyka Java. JDBC poskytuje mapovanie (mapping) medzi týmito dvoma sadami typov.

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

Mapovanie medzi JDBC typmi a Java typmi pri získavaní dát (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 Odporúča sa
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: Pre číselné typy, okrem primitívnych, je možné použiť aj príslušné obalové triedy (Boolean, Byte, Short, Integer, Long, Float, Double) na spracovanie hodnôt NULL.

Pri nastavovaní dát (v PreparedStatement) sa zvyčajne používa opačné mapovanie, ale existujú výnimky a preferencie. Napríklad, pre DECIMAL je lepšie použiť BigDecimal.

Príklad použitia:

// Metóda na získanie dát z ResultSet
public String getStringValue(ResultSet rs, String columnName) throws SQLException {
    // Získanie reťazcovej hodnoty zo stĺpca
    return rs.getString(columnName);
}

// Metóda na nastavenie parametra v PreparedStatement
public void setIntValue(PreparedStatement ps, int parameterIndex, int value) throws SQLException {
    // Nastavenie celého čísla
    ps.setInt(parameterIndex, value);
}