Sobes.tech
Middle

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.