Noem de belangrijkste datatypes die in JDBC worden gebruikt en leg uit hoe ze gerelateerd zijn aan Java-datatypen.
sobes.tech AI
Antwoord van AI
| SQL Gegevenstype | Java Gegevenstype | Beschrijving |
|---|---|---|
CHAR, VARCHAR, LONGVARCHAR |
String |
Tekstuele tekenreeksen |
NUMERIC, DECIMAL |
BigDecimal |
Numerieke waarden met vaste decimale punten |
BIT, BOOLEAN |
boolean |
Logische waarden |
TINYINT |
byte |
Geheel getal van -128 tot 127 |
SMALLINT |
short |
Geheel getal van -32768 tot 32767 |
INTEGER |
int |
Geheel getal |
BIGINT |
long |
Groot geheel getal |
REAL |
float |
Enkelprecisie drijvende-komma getal |
FLOAT, DOUBLE |
double |
Dubbelprecisie drijvende-komma getal |
BINARY, VARBINARY, LONGVARBINARY |
byte[] |
Binaire gegevens |
DATE |
java.sql.Date |
Datum (jaar, maand, dag) |
TIME |
java.sql.Time |
Tijd (uur, minuut, seconde) |
TIMESTAMP |
java.sql.Timestamp |
Datum en tijd met milliseconden |
BLOB |
java.sql.Blob |
Groot binair object |
CLOB |
java.sql.Clob |
Groot tekstueel object |
ARRAY |
java.sql.Array |
Array van waarden |
STRUCT |
java.sql.Struct |
Gestructureerd type |
REF |
java.sql.Ref |
Referentie naar een gestructureerd type |
DATALINK |
java.net.URL |
Link naar externe resource |
JAVA_OBJECT |
Object |
Gese serializeerde Java-object (afhankelijk van implementatie) |
ROWID |
java.sql.RowId |
Rij-identificator (afhankelijk van DBMS) |
NCHAR, NVARCHAR, LONGNVARCHAR |
String |
Nationalized tekstuele tekenreeksen |
NCLOB |
java.sql.NClob |
Nationalized groot tekstueel object |
SQLXML |
java.sql.SQLXML |
XML-gegevens |
JDBC (Java Database Connectivity) specificeert standaard SQL-typen in de klasse java.sql.Types. Deze typen worden weergegeven als numerieke constanten. JDBC-drivers mappen deze SQL-typen naar geschikte Java-typen bij het lezen van gegevens uit de database (bijvoorbeeld met getXXX() methoden van ResultSet) en bij het schrijven naar de database (bijvoorbeeld met setXXX() methoden van PreparedStatement).
De mapping wordt bepaald door hoe de specifieke database JDBC-driver de interne datatypes van de database omzet naar de standaard java.sql.Types en vervolgens naar Java-typen. Deze mapping is gedocumenteerd in de JDBC-specificatie en kan licht verschillen tussen drivers, hoewel de hoofd-mappings in de tabel standaard zijn.
Voorbeeld van gegevens ophalen uit ResultSet:
// Aangenomen dat rs een ResultSet is
String name = rs.getString("column_name_varchar");
int id = rs.getInt("column_name_integer");
BigDecimal value = rs.getBigDecimal("column_name_numeric");
Date date = rs.getDate("column_name_date");
Voorbeeld van het instellen van parameters in PreparedStatement:
// Aangenomen dat pstmt een PreparedStatement is
String name = "Test Name";
int id = 123;
BigDecimal value = new BigDecimal("100.50");
Date date = new Date(System.currentTimeMillis());
pstmt.setString(1, name); // 1 is de parameterpositie (beginnend bij 1)
pstmt.setInt(2, id);
pstmt.setBigDecimal(3, value);
pstmt.setDate(4, date);
JDBC probeert maximale compatibiliteit te bieden, maar voor specifieke of vendor-afhankelijke datatypes kunnen speciale benaderingen nodig zijn, zoals het gebruik van getObject() / setObject() met typecasting of instanceof checks.