Sobes.tech
Junior

Номгӯйи намудҳои асосии маълумот, ки дар JDBC истифода мешаванд, ва шарҳ диҳед, ки онҳо бо намудҳои маълумоти дар Java чӣ гуна алоқаманданд.

sobes.tech AI

Ҷавоб аз AI

Типҳои асосии маълумоти JDBC дар синфи java.sql.Types муайян шудаанд. Онҳо намуди стандартии SQL-ро намояндагӣ мекунанд. Типҳои маълумоти JVM дар Java дар махсусгардонии забон муайян шудаанд. JDBC мапинг (хобигардонии) байни ин ду маҷмӯи типҳоро таъмин мекунад.

Типҳои асосӣ дар java.sql.Types:

  • 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

Мапинг байни типҳои JDBC ва типҳои Java ҳангоми гирифтани маълумот (аз ResultSet):

Типи JDBC Типи Java (get) Тавзеҳот
BOOLEAN, BIT boolean
TINYINT byte
SMALLINT short
INTEGER int
BIGINT long
REAL float
FLOAT, DOUBLE double
DECIMAL, NUMERIC java.math.BigDecimal Тавсия мешавад
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

Тавзеҳот: Барои намудҳои рақамӣ, ғайр аз намудҳои primitives, метавон истифода бурд класиҳои wrapper (Boolean, Byte, Short, Integer, Long, Float, Double) барои коркарди арзишҳои NULL.

Ҳангоми гузоштани маълумотҳо (дар PreparedStatement) одатан истифода мешавад mapping-и баръакс, аммо истисноҳо ва афзалиятҳо мавҷуданд. Масалан, барои DECIMAL беҳтар аст истифодаи BigDecimal.

Маслиҳат барои истифода:

// Метод барои гирифтани маълумот аз ResultSet
public String getStringValue(ResultSet rs, String columnName) throws SQLException {
    // Гирифтани арзиши string аз сутун
    return rs.getString(columnName);
}

// Метод барои гузоштани параметр дар PreparedStatement
public void setIntValue(PreparedStatement ps, int parameterIndex, int value) throws SQLException {
    // Гузоштани арзиши integer
    ps.setInt(parameterIndex, value);
}