Sobes.tech
Middle

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ə.