Sobes.tech
Junior

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:

  • BOOLEAN
  • TINYINT
  • SMALLINT
  • INTEGER
  • BIGINT
  • REAL
  • FLOAT
  • DOUBLE
  • DECIMAL
  • NUMERIC
  • CHAR
  • VARCHAR
  • LONGVARCHAR
  • DATE
  • TIME
  • TIMESTAMP
  • BINARY
  • VARBINARY
  • LONGVARBINARY
  • BLOB
  • CLOB
  • NCHAR
  • NVARCHAR
  • LONGNVARCHAR
  • NCLOB
  • SQLXML

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);
}