Նշեք JDBC-ում օգտագործվող հիմնական տվյալների տեսակները և բացատրեք, թե ինչպես են դրանք կապված Java-ի տվյալների տեսակների հետ։
sobes.tech AI
Պատասխան AI-ից
Հիմնական տվյալների տեսակները JDBC-ում սահմանված են java.sql.Types դասում: Դրանք ներկայացնում են ստանդարտ SQL տեսակները: JVM-ի տվյալների տեսակները Java-ում սահմանված են լեզվի բնութագրումում: 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);
}