PreparedStatement
의 setObject
메소드로 파라미터 매핑을 했을 때 어떻게 자동으로 타입을 찾는지 궁금해서 조금 찾아봤다.
// JdbcPreparedStatement
@Override
public void setObject(int parameterIndex, Object x) throws SQLException {
try {
if (isDebugEnabled()) {
debugCode("setObject(" + parameterIndex + ", x);");
}
if (x == null) {
setParameter(parameterIndex, ValueNull.INSTANCE);
} else {
setParameter(parameterIndex, DataType.convertToValue(session, x, Value.UNKNOWN));
}
} catch (Exception e) {
throw logAndConvert(e);
}
}
JdbcPreparedStatement
의 setObject
를 보면 다음과같이 DataType.convertToValue
메서드로 타입을 변환한다.
위 링크를 보면 타입별로 적절한 DBType 으로 매핑하는 것을 볼 수 있다.