Номгӯйи намудҳои асосии маълумот, ки дар JDBC истифода мешаванд, ва шарҳ диҳед, ки онҳо бо намудҳои маълумоти дар Java чӣ гуна алоқаманданд.
sobes.tech AI
Ҷавоб аз AI
Типҳои асосии маълумоти JDBC дар синфи java.sql.Types муайян шудаанд. Онҳо намуди стандартии SQL-ро намояндагӣ мекунанд. Типҳои маълумоти JVM дар Java дар махсусгардонии забон муайян шудаанд. JDBC мапинг (хобигардонии) байни ин ду маҷмӯи типҳоро таъмин мекунад.
Типҳои асосӣ дар java.sql.Types:
BOOLEANTINYINTSMALLINTINTEGERBIGINTREALFLOATDOUBLEDECIMALNUMERICCHARVARCHARLONGVARCHARDATETIMETIMESTAMPBINARYVARBINARYLONGVARBINARYBLOBCLOBNCHARNVARCHARLONGNVARCHARNCLOBSQLXML
Мапинг байни типҳои 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);
}