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