Sobes.tech
Middle

JDBCda ishlatiladigan asosiy ma'lumotlar turlarini sanab o'ting va ular Java ma'lumotlar turlari bilan qanday bog'liqligini tushuntiring.

sobes.tech AI

AIdan javob

SQL маълумот тури Java маълумот тури Тавсиф
CHAR, VARCHAR, LONGVARCHAR String Ҳарфлар қатори
NUMERIC, DECIMAL BigDecimal Аниқ нуқта билан рақамлар
BIT, BOOLEAN boolean Маъноли қийматлар
TINYINT byte -128 дан 127 гача бутун сон
SMALLINT short -32768 дан 32767 гача бутун сон
INTEGER int Бутун сон
BIGINT long Катта бутун сон
REAL float Биринчи даражадаги ўтказувчи рақам
FLOAT, DOUBLE double Икки даражадаги ўтказувчи рақам
BINARY, VARBINARY, LONGVARBINARY byte[] Иккита маълумотлар
DATE java.sql.Date Сан (йил, ой, кун)
TIME java.sql.Time Вақт (соат, дақиқа, сония)
TIMESTAMP java.sql.Timestamp Сан ва вақт, миллисекундлар билан
BLOB java.sql.Blob Катта ҳажмдаги иккита маълумот объекти
CLOB java.sql.Clob Катта ҳажмдаги ҳарфли объект
ARRAY java.sql.Array Қийматлар массиви
STRUCT java.sql.Struct Тузилган тур
REF java.sql.Ref Тузилган турга ишора
DATALINK java.net.URL Ташқи манбага ҳавола
JAVA_OBJECT Object Java сериаллаштирилган объект (амалга оширишга боғлиқ)
ROWID java.sql.RowId Қатор идентификатори (СУБДга боғлиқ)
NCHAR, NVARCHAR, LONGNVARCHAR String Миллий ҳарфлар қатори
NCLOB java.sql.NClob Миллий ҳарфлар объектлари, катта ҳажмда
SQLXML java.sql.SQLXML XML маълумотлари

JDBC (Java Database Connectivity) стандартда java.sql.Types синфи орқали стандарт SQL турларини белгилайди. Бу турлар рақамли константлардир. JDBC драйверлари бу SQL турларини Javaда мос келадиган турларга маппалайди, маълумотлар базасидан маълумот ўқишда (масалан, ResultSetнинг getXXX() методлари орқали) ва маълумотлар базасига ёзишда (масалан, PreparedStatementнинг setXXX() методлари орқали).

Маппинг, муайян база учун JDBC драйвери ички маълумот турлари билан java.sql.Types орасида қандай маппинг қўйилганига боғлиқ бўлиб, кейинчалик Java турларига ўтказилади. Бу маппинг JDBC спецификациясида ҳужжатланган ва драйверлар орасида кичик фарқлар бўлиши мумкин, аммо асосий маппинглар стандарт ҳисобланади.

Масалан, ResultSetдан маълумот олиш:

// rs ResultSet бўлса
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");

PreparedStatementда параметрларни қўйиш:

// pstmt PreparedStatement бўлса
String name = "Test Name";
int id = 123;
BigDecimal value = new BigDecimal("100.50");
Date date = new Date(System.currentTimeMillis());

pstmt.setString(1, name); // 1 - параметр рақами (1дан бошланади)
pstmt.setInt(2, id);
pstmt.setBigDecimal(3, value);
pstmt.setDate(4, date);

JDBC максимал мувофиқликни таъминлашга ҳаракат қилади, аммо махсус ёки сатирга хос турлар учун махсус ёндашувлар ёки getObject() / setObject() методларидан фойдаланиш, турларни конвертация қилиш ёки instanceof билан текшириш талаб қилинади.