JDBCде колдонулган негизги маалымат түрлөрүн тизмелеп, алар Javaдагы маалымат түрлөрү менен кандай байланышта экенин түшүндүрүңүз.
sobes.tech AI
AIден жооп
JDBC негизги маалымат түрлөрү java.sql.Types класында аныкталган. Алар стандарттуу SQL түрлөрүн көрсөтөт. Javaда JVM түрлөрү тилдин спецификациясында аныкталган. JDBC бул эки түр топтомунун ортосунда мапингди камсыз кылат:
java.sql.Types негизги түрлөрү:
BOOLEANTINYINTSMALLINTINTEGERBIGINTREALFLOATDOUBLEDECIMALNUMERICCHARVARCHARLONGVARCHARDATETIMETIMESTAMPBINARYVARBINARYLONGVARBINARYBLOBCLOBNCHARNVARCHARLONGNVARCHARNCLOBSQLXML
Маалыматтарды алуу учурунда (ResultSet ичиндеги) JDBC түрлөрү менен Java түрлөрүнүн ортосунда мапинг:
| JDBC ТҮРҮ | Java ТҮРҮ (get) |
Белгилөөлөр |
|---|---|---|
BOOLEAN, BIT |
boolean |
|
TINYINT |
byte |
|
SMALLINT |
short |
|
INTEGER |
int |
|
BIGINT |
long |
|
REAL |
float |
|
FLOAT, DOUBLE |
double |
|
DECIMAL, NUMERIC |
java.math.BigDecimal |
Туура сунушталат |
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 |
Белгилөө: Сандык түрлөрү үчүн, примиативдүү түрлөрдөн тышкары, тиешелүү обьекттик класстарды (Boolean, Byte, Short, Integer, Long, Float, Double) NULL маанилери үчүн колдонсо болот.
Маалыматты орнотуу учурунда (PreparedStatement ичинде) көбүнчө тескерисинче мапинг колдонулат, бирок айрым учурларда жана артыкчылыктар бар. Мисалы, DECIMAL үчүн жакшыраак BigDecimal колдонуу:
Колдонуу мисалы:
// ResultSetтен маалымат алуу методу
public String getStringValue(ResultSet rs, String columnName) throws SQLException {
// Колонкадан саптык маанини алуу
return rs.getString(columnName);
}
// PreparedStatementке параметр коюу методу
public void setIntValue(PreparedStatement ps, int parameterIndex, int value) throws SQLException {
// Суроо параметрине бүтүн сандык маанини коюу
ps.setInt(parameterIndex, value);
}