გთხოვთ, ჩამოთვალეთ 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);
}