В документах JDBC setObject
я нашел это предложение:
Спецификация JDBC определяет стандартное сопоставление типов объектов Java с типами SQL.
Однако я не могу найти, где определено это отображение.Все, что я нашел, это это .Но это только определяет соответствие между типами SQL и типами JDBC.Но я не понимаю, как я могу перейти от типа JDBC к типам Java.
В частности, мне интересно, например, гарантированно ли, например, что этот код никогда не выдаст InvalidCastException
:
int type = resultSet.getMetadata().getColumnType(1);
if (type == Types.LONGNVARCHAR || type == Types.CHAR) {
String abc = (String)resultSet.getObject(1);
}
В этом случае вполне интуитивно понятно, что можно ожидать String
, но есть много других типов SQL, для которых у меня нет такой интуиции.
Я просто не могу найти таблицу, сообщающую, чтоприведение типов может быть безопасно выполнено на основе знания константы java.sql.Types
.