Junior
Uzskaitiet galvenos datu tipus, kas tiek izmantoti JDBC, un paskaidrojiet, kā tie ir saistīti ar Java datu tipiem.
sobes.tech AI
Atbilde no AI
Galvenie JDBC datu tipi ir noteikti java.sql.Types klasē. Tie pārstāv standarta SQL tipus. JVM datu tipi Java valodā ir noteikti valodas specifikācijā. JDBC nodrošina šo divu tipu kopumu (mapping) savstarpēju saistību.
java.sql.Types galvenie tipi:
BOOLEANTINYINTSMALLINTINTEGERBIGINTREALFLOATDOUBLEDECIMALNUMERICCHARVARCHARLONGVARCHARDATETIMETIMESTAMPBINARYVARBINARYLONGVARBINARYBLOBCLOBNCHARNVARCHARLONGNVARCHARNCLOBSQLXML
Datu iegūšanas laikā (ResultSet) starp JDBC tipiem un Java tipiem notiek šāds mapeings:
| JDBC tips | Java tips (get) |
Piezīmes |
|---|---|---|
BOOLEAN, BIT |
boolean |
|
TINYINT |
byte |
|
SMALLINT |
short |
|
INTEGER |
int |
|
BIGINT |
long |
|
REAL |
float |
|
FLOAT, DOUBLE |
double |
|
DECIMAL, NUMERIC |
java.math.BigDecimal |
Ieteicams |
CHAR, VARCHAR, LONGVARCHAR |
String |
|
DATE |
java.sql.Date |
|
TIME |
java.sql.Time |
|
TIMESTAMP |
java.sql.Timestamp |
|
BINARY, VARBINARY, LONGVARBINARY |
byte[] |
|
BLOB |
java.sql.Blob |
|
CLOB |
java.sql.Clob |
|
NCHAR, NVARCHAR, LONGNVARCHAR |
String |
|
NCLOB |
java.sql.NClob |
|
SQLXML |
java.sql.SQLXML |
Piezīme: Skaitlisko tipu gadījumā, papildus primitivajiem tipiem, var izmantot atbilstošas objektu klases (Boolean, Byte, Short, Integer, Long, Float, Double) NULL vērtību apstrādei.
Datu iestatīšanas laikā (PreparedStatement) parasti tiek izmantots pretējais mapeings, bet ir izņēmumi un priekšroka. Piemēram, DECIMAL labāk ir izmantot ar BigDecimal:
Piemērs lietošanai:
// Metode datu iegūšanai no ResultSet
public String getStringValue(ResultSet rs, String columnName) throws SQLException {
// Saņem teksta vērtību no kolonnas
return rs.getString(columnName);
}
// Metode parametra iestatīšanai PreparedStatement
public void setIntValue(PreparedStatement ps, int parameterIndex, int value) throws SQLException {
// Iestata vesela skaitļa vērtību uz vaicājuma parametra
ps.setInt(parameterIndex, value);
}