JDBC-də istifadə olunan əsas məlumat növlərini sadalayın və onların Java məlumat növləri ilə necə əlaqəli olduğunu izah edin.
sobes.tech Süni İntellekt
AI-dan cavab
| SQL Data Type | Java Data Type | Təsviri |
|---|---|---|
CHAR, VARCHAR, LONGVARCHAR |
String |
Simvolik sətirlər |
NUMERIC, DECIMAL |
BigDecimal |
Sabit onluqlu ədədlər |
BIT, BOOLEAN |
boolean |
Məntiqi dəyərlər |
TINYINT |
byte |
-128-dən 127-ə qədər tam ədəd |
SMALLINT |
short |
-32768-dən 32767-ə qədər tam ədəd |
INTEGER |
int |
Tam ədəd |
BIGINT |
long |
Böyük tam ədəd |
REAL |
float |
Tək dəqiqlikli onluqlu ədədlər |
FLOAT, DOUBLE |
double |
İki dəqiqlikli onluqlu ədədlər |
BINARY, VARBINARY, LONGVARBINARY |
byte[] |
İkili məlumatlar |
DATE |
java.sql.Date |
Tarix (il, ay, gün) |
TIME |
java.sql.Time |
Vaxt (saat, dəqiqə, saniyə) |
TIMESTAMP |
java.sql.Timestamp |
Millisekundlarla tarix və vaxt |
BLOB |
java.sql.Blob |
Böyük ikili obyekt |
CLOB |
java.sql.Clob |
Böyük mətnli obyekt |
ARRAY |
java.sql.Array |
Dəyər massivləri |
STRUCT |
java.sql.Struct |
Strukturlaşdırılmış tip |
REF |
java.sql.Ref |
Strukturlaşdırılmış tipə istinad |
DATALINK |
java.net.URL |
Xarici resursa keçid |
JAVA_OBJECT |
Object |
Java serializasiya olunmuş obyekt (implementasiyadan asılıdır) |
ROWID |
java.sql.RowId |
Sətir identifikatoru (SGBD-ə görə dəyişir) |
NCHAR, NVARCHAR, LONGNVARCHAR |
String |
Milliyyətli simvol sətirləri |
NCLOB |
java.sql.NClob |
Milliyyətli böyük mətnli obyekt |
SQLXML |
java.sql.SQLXML |
XML məlumatları |
JDBC (Java Database Connectivity) standart SQL tiplerini java.sql.Types sinifində təyin edir. Bu tipler sayısal sabitlərdir. JDBC sürücüləri bu SQL tiplərini Java üçün uyğun tiplərə xəritələyir, məlumatları bazadan oxuyarkən (ResultSet-in getXXX() metodları ilə) və bazaya yazarkən (PreparedStatement-in setXXX() metodları ilə).
Xəritə, konkret verilənlər bazasının JDBC sürücüsünün daxili verilənlər tipi ilə java.sql.Types-dəki standartlara və sonra Java tiplərinə necə çevrildiyindən asılıdır. Bu xəritə JDBC spesifikasiyasında sənədləşdirilib və sürücülər arasında kiçik fərqlər ola bilər, lakin əsas xəritələr standartdır.
Məlumatların ResultSet-dən alınması nümunəsi:
// rs ResultSet olduğunu qəbul edirik
String name = rs.getString("column_name_varchar");
int id = rs.getInt("column_name_integer");
BigDecimal value = rs.getBigDecimal("column_name_numeric");
Date date = rs.getDate("column_name_date");
Parametrlərin PreparedStatement-ə qoyulması nümunəsi:
// pstmt PreparedStatement olduğunu qəbul edirik
String name = "Test Name";
int id = 123;
BigDecimal value = new BigDecimal("100.50");
Date date = new Date(System.currentTimeMillis());
pstmt.setString(1, name); // 1 parametrin mövqeyi (1-dən başlayır)
pstmt.setInt(2, id);
pstmt.setBigDecimal(3, value);
pstmt.setDate(4, date);
JDBC maksimum uyğunluğu təmin etməyə çalışır, lakin xüsusi və ya vendor-əxas tiplər üçün xüsusi yanaşmalar lazım ola bilər, məsələn, getObject() / setObject() metodlarından istifadə və ya instanceof yoxlamaları ilə.