JDBC'de kullanılan temel veri türlerini listeleyin ve bunların Java veri türleriyle nasıl ilişkili olduğunu açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
| SQL Veri Tipi | Java Veri Tipi | Açıklama |
|---|---|---|
CHAR, VARCHAR, LONGVARCHAR |
String |
Karakter dizileri |
NUMERIC, DECIMAL |
BigDecimal |
Sabit noktalı sayılar |
BIT, BOOLEAN |
boolean |
Mantıksal değerler |
TINYINT |
byte |
-128 ile 127 arasında tam sayı |
SMALLINT |
short |
-32768 ile 32767 arasında tam sayı |
INTEGER |
int |
Tam sayı |
BIGINT |
long |
Büyük tam sayı |
REAL |
float |
Tek hassasiyetli kayan nokta sayısı |
FLOAT, DOUBLE |
double |
Çift hassasiyetli kayan nokta sayısı |
BINARY, VARBINARY, LONGVARBINARY |
byte[] |
İkili veriler |
DATE |
java.sql.Date |
Tarih (yıl, ay, gün) |
TIME |
java.sql.Time |
Zaman (saat, dakika, saniye) |
TIMESTAMP |
java.sql.Timestamp |
Milisaniyeli tarih ve saat |
BLOB |
java.sql.Blob |
Büyük boyutlu ikili nesne |
CLOB |
java.sql.Clob |
Büyük boyutlu karakter nesnesi |
ARRAY |
java.sql.Array |
Dizi değerleri |
STRUCT |
java.sql.Struct |
Yapılandırılmış tip |
REF |
java.sql.Ref |
Yapılandırılmış tipe referans |
DATALINK |
java.net.URL |
Dış kaynağa bağlantı |
JAVA_OBJECT |
Object |
Serileştirilmiş Java nesnesi (uygulamaya bağlı) |
ROWID |
java.sql.RowId |
Satır kimliği (veritabanına bağlı) |
NCHAR, NVARCHAR, LONGNVARCHAR |
String |
Ulusal karakter dizileri |
NCLOB |
java.sql.NClob |
Ulusal karakter nesnesi büyük boyutlu |
SQLXML |
java.sql.SQLXML |
XML verileri |
JDBC (Java Database Connectivity) standardı, SQL veri tiplerini java.sql.Types sınıfında tanımlar. Bu tipler sayısal sabitlerdir. JDBC sürücüleri, bu SQL tiplerini uygun Java veri tiplerine eşlerken, veritabanından veri okuma sırasında (örneğin, ResultSet'in getXXX() metodlarıyla) ve veritabanına yazma sırasında (örneğin, PreparedStatement'in setXXX() metodlarıyla) kullanılır.
Eşleme, belirli bir veritabanı için JDBC sürücüsünün, veritabanının içsel veri tipleri ile java.sql.Types arasındaki eşlemeyi nasıl uyguladığına bağlıdır ve ardından Java veri tiplerine dönüştürür. Bu eşleme, JDBC spesifikasyonunda belgelenmiştir ve sürücüler arasında hafif farklılıklar gösterebilir, ancak tabloda gösterilen temel eşlemeler standarttır.
Örnek ResultSet'ten veri alma:
// rs bir ResultSet nesnesi varsayılır
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");
PreparedStatement'te parametre ayarlama örneği:
// pstmt bir PreparedStatement nesnesi varsayılır
String name = "Test Name";
int id = 123;
BigDecimal value = new BigDecimal("100.50");
Date date = new Date(System.currentTimeMillis());
pstmt.setString(1, name); // 1 - parametre numarası (1'den başlar)
pstmt.setInt(2, id);
pstmt.setBigDecimal(3, value);
pstmt.setDate(4, date);
JDBC, maksimum uyumluluğu sağlamaya çalışır, ancak belirli veya satıcıya özel veri tipleri için özel yaklaşımlar veya getObject() / setObject() metodlarının kullanımı gerekebilir.