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 билан текшириш талаб қилинади.