Middle
Išvardykite pagrindinius duomenų tipus, naudojamus JDBC, ir paaiškinkite, kaip jie susiję su Java duomenų tipais.
sobes.tech AI
Atsakymas iš AI
| SQL duomenų tipai | Java duomenų tipai | Aprašymas |
|---|---|---|
CHAR, VARCHAR, LONGVARCHAR |
String |
Žodžių eilutės |
NUMERIC, DECIMAL |
BigDecimal |
Fiksuotosios dalies skaičiai |
BIT, BOOLEAN |
boolean |
Loginės reikšmės |
TINYINT |
byte |
Sveikasis skaičius nuo -128 iki 127 |
SMALLINT |
short |
Sveikasis skaičius nuo -32768 iki 32767 |
INTEGER |
int |
Sveikasis skaičius |
BIGINT |
long |
Didelis sveikasis skaičius |
REAL |
float |
Vieno tikslumo slankusis kablelis |
FLOAT, DOUBLE |
double |
Dvigubo tikslumo slankusis kablelis |
BINARY, VARBINARY, LONGVARBINARY |
byte[] |
Dvejetainiai duomenys |
DATE |
java.sql.Date |
Data (metai, mėnuo, diena) |
TIME |
java.sql.Time |
Laikas (valanda, minutė, sekundė) |
TIMESTAMP |
java.sql.Timestamp |
Data ir laikas su milisekundėmis |
BLOB |
java.sql.Blob |
Didelis dvejetainis objektas |
CLOB |
java.sql.Clob |
Didelis simbolinis objektas |
ARRAY |
java.sql.Array |
Masyvas reikšmių |
STRUCT |
java.sql.Struct |
Struktūruotas tipas |
REF |
java.sql.Ref |
Nuoroda į struktūruotą tipą |
DATALINK |
java.net.URL |
Nuoroda į išorinį šaltinį |
JAVA_OBJECT |
Object |
Java serijalizuotas objektas (priklauso nuo įgyvendinimo) |
ROWID |
java.sql.RowId |
Eilutės identifikatorius (priklauso nuo DBMS) |
NCHAR, NVARCHAR, LONGNVARCHAR |
String |
Nacionalinės simbolių eilutės |
NCLOB |
java.sql.NClob |
Nacionalinis simbolių didelis objektas |
SQLXML |
java.sql.SQLXML |
XML duomenys |
JDBC (Java Database Connectivity) standartas apibrėžia standartinius SQL duomenų tipus java.sql.Types klasėje. Šie tipai yra skaitmeniniai konstantai. JDBC tvarkyklės šiuos SQL tipus mapuoja į tinkamus Java duomenų tipus duomenų skaitymui ir rašymui:
// Pavyzdys, kaip gauti duomenis iš 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");
// Pavyzdys, kaip nustatyti parametrus PreparedStatement
pstmt.setString(1, name);
pstmt.setInt(2, id);
pstmt.setBigDecimal(3, value);
pstmt.setDate(4, date);
JDBC siekia užtikrinti maksimalų suderinamumą, tačiau specifiniai arba gamintojo priklausomi duomenų tipai gali reikalauti specialių metodų arba getObject() / setObject() naudojimo, po to vykdant tipų konvertavimą arba instanceof patikrinimus.