Sobes.tech
Junior

Noem de belangrijkste datatypes die in JDBC worden gebruikt en leg uit hoe ze verband houden met de datatypes in Java.

sobes.tech AI

Antwoord van AI

De belangrijkste JDBC-gegevens types worden gedefinieerd in de klasse java.sql.Types. Ze vertegenwoordigen standaard SQL-types. JVM-gegevens types in Java worden gedefinieerd in de taal-specificatie. JDBC biedt een mapping tussen deze twee type-sets.

Belangrijkste types in 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

Mapping tussen JDBC-types en Java-types bij het ophalen van data (uit ResultSet):

JDBC Type Java Type (get) Opmerkingen
BOOLEAN, BIT boolean
TINYINT byte
SMALLINT short
INTEGER int
BIGINT long
REAL float
FLOAT, DOUBLE double
DECIMAL, NUMERIC java.math.BigDecimal Aanbevolen
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

Opmerking: Voor numerieke types, naast primitieve types, kunnen de bijbehorende wrapper-klassen (Boolean, Byte, Short, Integer, Long, Float, Double) worden gebruikt om NULL-waarden te verwerken.

Bij het instellen van data (in PreparedStatement) wordt meestal de omgekeerde mapping gebruikt, maar er zijn uitzonderingen en voorkeuren. Bijvoorbeeld, voor DECIMAL is het beter om BigDecimal te gebruiken.

Voorbeeld van gebruik:

// Methode om data uit ResultSet te halen
public String getStringValue(ResultSet rs, String columnName) throws SQLException {
    // String-waarde uit kolom ophalen
    return rs.getString(columnName);
}

// Methode om een waarde in te stellen in PreparedStatement
public void setIntValue(PreparedStatement ps, int parameterIndex, int value) throws SQLException {
    // Integerwaarde instellen voor parameter
    ps.setInt(parameterIndex, value);
}