Sobes.tech
Junior

JDBCda ishlatiladigan asosiy ma'lumotlar turlarini sanab o'ting va ular Java'dagi ma'lumotlar turlari bilan qanday bog'liqligini tushuntiring.

sobes.tech AI

AIdan javob

JDBC ning asosiy ma'lumot turlari java.sql.Types sinfida belgilangan. Ular standart SQL turlarini ifodalaydi. Java JVM ma'lumot turlari til spetsifikatsiyasida belgilangan. JDBC bu ikki tur to'plami o'rtasida (mapping) xaritani ta'minlaydi.

java.sql.Types dagi asosiy turlar:

  • 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

Ma'lumotlarni olishda (masalan, ResultSet dan): JDBC turlari bilan Java turlari o'rtasidagi xarita:

JDBC Turi Java Turi (get) Eslatma
BOOLEAN, BIT boolean
TINYINT byte
SMALLINT short
INTEGER int
BIGINT long
REAL float
FLOAT, DOUBLE double
DECIMAL, NUMERIC java.math.BigDecimal Tavsiya etiladi
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

Eslatma: Raqamli turlar uchun, primitiv turlardan tashqari, mos keladigan wrapper sinflar (Boolean, Byte, Short, Integer, Long, Float, Double) NULL qiymatlarni ishlash uchun foydalanilishi mumkin.

Ma'lumotlarni o'rnatishda (masalan, PreparedStatement) odatda teskari xarita ishlatiladi, lekin ba'zi hollarda va afzalliklar mavjud. Masalan, DECIMAL uchun BigDecimal yaxshiroq.

Misol uchun:

// ResultSet'dan ma'lumot olish uchun metod
public String getStringValue(ResultSet rs, String columnName) throws SQLException {
    // Ustundan satr qiymatini olish
    return rs.getString(columnName);
}

// PreparedStatement'da parametrni o'rnatish uchun metod
public void setIntValue(PreparedStatement ps, int parameterIndex, int value) throws SQLException {
    // Butun son qiymatini parametrga o'rnatish
    ps.setInt(parameterIndex, value);
}