JDBC-də istifadə olunan əsas məlumat növlərini sadalayın və onların Java-dakı məlumat növləri ilə necə əlaqəli olduğunu izah edin.
sobes.tech Süni İntellekt
AI-dan cavab
JDBC-nin əsas məlumat tipləri java.sql.Types sinifində müəyyən edilmişdir. Bunlar standart SQL tiplərini təmsil edir. Java-da JVM məlumat tipləri dilin spesifikasiyasında müəyyən edilmişdir. JDBC bu iki tip dəstləri arasında xəritələşdirmə (mapping) təmin edir.
java.sql.Types içində əsas tiplər:
BOOLEANTINYINTSMALLINTINTEGERBIGINTREALFLOATDOUBLEDECIMALNUMERICCHARVARCHARLONGVARCHARDATETIMETIMESTAMPBINARYVARBINARYLONGVARBINARYBLOBCLOBNCHARNVARCHARLONGNVARCHARNCLOBSQLXML
JDBC tipləri və Java tipləri arasında məlumatların alınması zamanı xəritələşdirmə (ResultSet-dən):
| JDBC Tipi | Java Tipi (get) |
Qeyd |
|---|---|---|
BOOLEAN, BIT |
boolean |
|
TINYINT |
byte |
|
SMALLINT |
short |
|
INTEGER |
int |
|
BIGINT |
long |
|
REAL |
float |
|
FLOAT, DOUBLE |
double |
|
DECIMAL, NUMERIC |
java.math.BigDecimal |
Tövsiyə olunur |
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 |
Qeyd: Rəqəmsal tiplər üçün, primitiv tiplərdən başqa, uyğun sınaq sinifləri (Boolean, Byte, Short, Integer, Long, Float, Double) istifadə edilə bilər NULL dəyərlərinin işlənməsi üçün.
Məlumatların qurulması zamanı xəritələşdirmə (PreparedStatement-də): ümumiyyətlə, əks xəritələşdirmə istifadə olunur, lakin istisnalar və üstünlüklər mövcuddur. Məsələn, DECIMAL üçün BigDecimal istifadə etmək daha yaxşıdır.
İstifadə nümunəsi:
// ResultSet-dən məlumat alma metodu
public String getStringValue(ResultSet rs, String columnName) throws SQLException {
// Sətir dəyərini əldə edin
return rs.getString(columnName);
}
// PreparedStatement-də parametr qurma metodu
public void setIntValue(PreparedStatement ps, int parameterIndex, int value) throws SQLException {
// Tam ədəd dəyərini qurun
ps.setInt(parameterIndex, value);
}