Nennen Sie die wichtigsten Datentypen, die in JDBC verwendet werden, und erklären Sie, wie sie mit den Datentypen in Java verbunden sind.
sobes.tech KI
Antwort von AI
Die wichtigsten JDBC-Datentypen sind in der Klasse java.sql.Types definiert. Sie stellen standardmäßige SQL-Typen dar. JVM-Datentypen in Java sind in der Sprachspezifikation definiert. JDBC bietet eine Abbildung (Mapping) zwischen diesen beiden Typensätzen.
Haupttypen in java.sql.Types:
BOOLEANTINYINTSMALLINTINTEGERBIGINTREALFLOATDOUBLEDECIMALNUMERICCHARVARCHARLONGVARCHARDATETIMETIMESTAMPBINARYVARBINARYLONGVARBINARYBLOBCLOBNCHARNVARCHARLONGNVARCHARNCLOBSQLXML
Die Zuordnung zwischen JDBC-Typen und Java-Typen beim Abrufen von Daten (aus ResultSet):
| JDBC-Typ | Java-Typ (get) |
Hinweise |
|---|---|---|
BOOLEAN, BIT |
boolean |
|
TINYINT |
byte |
|
SMALLINT |
short |
|
INTEGER |
int |
|
BIGINT |
long |
|
REAL |
float |
|
FLOAT, DOUBLE |
double |
|
DECIMAL, NUMERIC |
java.math.BigDecimal |
Empfohlen |
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 |
Hinweis: Für numerische Typen können neben primitiven Typen auch die entsprechenden Wrapper-Klassen (Boolean, Byte, Short, Integer, Long, Float, Double) verwendet werden, um NULL-Werte zu behandeln.
Beim Setzen von Daten (in PreparedStatement) wird in der Regel die inverse Abbildung verwendet, es gibt jedoch Ausnahmen und Präferenzen. Zum Beispiel ist für DECIMAL die Verwendung von BigDecimal vorzuziehen.
Beispiel für die Verwendung:
// Methode zum Abrufen von Daten aus ResultSet
public String getStringValue(ResultSet rs, String columnName) throws SQLException {
// String-Wert aus Spalte holen
return rs.getString(columnName);
}
// Methode zum Setzen eines Werts in PreparedStatement
public void setIntValue(PreparedStatement ps, int parameterIndex, int value) throws SQLException {
// Ganzzahligen Wert für Parameter setzen
ps.setInt(parameterIndex, value);
}