Giriş
Şu satırı dahil ederiz
import java.sql.Types;
Açıklaması şöyle. Yani Java 8'den sonra java.sql.JDBCType enumeration kullanılır. Aslında bu enumeration da java.sql.SQLType arayüzünü gerçekleştiriyor
With improvements in the API's, as of Java 8 and JDBC 4.2, we have JDBCType and SQLType, ...
java.sql.Types ve Java tipleri arasındaki eşleşme şöyle. Toplam 39 tane SQL tipi var. Bu tablo kısa bir özeti
ÖrnekSQL data type Java data typeBIT booleanTINYINT byteSMALLINT shortINTEGER intBIGINT longREAL floatFLOAT, DOUBLE doubleDATETIMETIMESTAMP java.sql.Date, java.sql.Time, java.sql.TimestampVARCHAR StringBLOB java.sql.Blob
Şöyle yaparız
Yardımcı sınıflar şöyle//Convert ResultSet to Java typepublic <T> T convertPrimitive(final Class<T> clazz, final ResultSet resultSet)throws QueryResultProcessorException {try {Object obj = readFromResultSet(clazz, resultSet, 1);return assignResult(resultSet, obj);} catch (SQLException exception) {...}}
//Reads the specified columnNumber from ResultSet and converts it to specified Java typeprivate <T> Object readFromResultSet(Class<T> clazz, ResultSet rs, Integer columnNumber)throws SQLException {Object obj = null;if (Util.isInteger(clazz)) {obj = rs.getInt(columnNumber);} else if (Util.isLong(clazz)) {obj = rs.getLong(columnNumber);} else if (Util.isBoolean(clazz)) {obj = rs.getBoolean(columnNumber);} else if (Util.isTimestamp(clazz)) {obj = rs.getTimestamp(columnNumber);} else if (Util.isString(clazz)) {obj = rs.getString(columnNumber);} else if (Util.isFloat(clazz)) {obj = rs.getFloat(columnNumber);} else if (Util.isDouble(clazz)) {obj = rs.getDouble(columnNumber);} else if (Util.isByte(clazz)) {obj = rs.getByte(columnNumber);} else if (Util.isShort(clazz)) {obj = rs.getShort(columnNumber);} else if (Util.isSqlDate(clazz)) {obj = rs.getDate(columnNumber);} else if (Util.isChar(clazz)) {String val = rs.getString(columnNumber);obj = Util.setChar(obj, val);} else {obj = rs.getObject(columnNumber);}return obj;}
Yardımcı sınıflar şöyle
//Checksif resultSet.wasNull() == trueprivate <T> T assignResult(final ResultSet resultSet, final Object obj) throws SQLException {// if result wasn't null store it in the field else field = nullT result = null;if (!resultSet.wasNull()) {result = (T) obj;}return result;}