JDBC'de kullanılan temel veri türlerini listeleyin ve bunların Java'daki veri türleriyle nasıl ilişkili olduğunu açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
JDBC temel veri türleri, java.sql.Types sınıfında tanımlanmıştır. Bunlar standart SQL türlerini temsil eder. Java'daki JVM veri türleri, dil spesifikasyonunda tanımlanmıştır. JDBC, bu iki tür kümesi arasında bir eşleme (mapping) sağlar.
java.sql.Types içindeki temel türler:
BOOLEANTINYINTSMALLINTINTEGERBIGINTREALFLOATDOUBLEDECIMALNUMERICCHARVARCHARLONGVARCHARDATETIMETIMESTAMPBINARYVARBINARYLONGVARBINARYBLOBCLOBNCHARNVARCHARLONGNVARCHARNCLOBSQLXML
Veri alınırken (örneğin ResultSet'ten): JDBC türleri ile Java türleri arasındaki eşleme:
| JDBC Türü | Java Türü (get) |
Notlar |
|---|---|---|
BOOLEAN, BIT |
boolean |
|
TINYINT |
byte |
|
SMALLINT |
short |
|
INTEGER |
int |
|
BIGINT |
long |
|
REAL |
float |
|
FLOAT, DOUBLE |
double |
|
DECIMAL, NUMERIC |
java.math.BigDecimal |
Tavsiye edilir |
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 |
Not: Sayısal türler için, temel türlerin yanı sıra, karşılık gelen sarmalayıcı sınıflar (Boolean, Byte, Short, Integer, Long, Float, Double) NULL değerlerini işlemek için kullanılabilir.
Veri ayarlarken (örneğin PreparedStatement), genellikle ters eşleme kullanılır, ancak istisnalar ve tercihler vardır. Örneğin, DECIMAL için BigDecimal kullanmak daha iyidir.
Kullanım örneği:
// ResultSet'ten veri alma metodu
public String getStringValue(ResultSet rs, String columnName) throws SQLException {
// Sütundan string değeri al
return rs.getString(columnName);
}
// PreparedStatement'e değer ayarlama metodu
public void setIntValue(PreparedStatement ps, int parameterIndex, int value) throws SQLException {
// Parametreye tam sayı değeri ayarla
ps.setInt(parameterIndex, value);
}