2013-05-17 3 views
0

Я хотел бы знать, когда используется метод экземпляра ResultSet: getObject(int columnNumber);, как получилось, что он автоматически добавляется к типу столбца? Объект ResultSet является чем-то неявным? Спасибо заранее.resultSet.getObject (1); где происходит литье?

+0

Будьте предельно осторожны при использовании ResultSet.getObject(), вы можете получить различное поведение с разными драйверами (например, для столбца SMALLINT, некоторые драйверы возвращают java.lang.Short, в то время как другие могут возвращать java.lang.Integer) – Durandal

ответ

2

Это не извергаются к типу столбца, уже этот тип при хранении в ResultSet. Этот метод возвращает Object или любой объект, класс которого распространяется Object который, очевидно, любой класс.

1

Получает значение определяемого столбца в текущей строке этого ResultSet объект как объект в языке программирования Java

Этот метод возвращает значение заданного столбца в виде Java объекта. Тип объекта Java будет объектом Java по умолчанию , соответствующим типу SQL столбца, после отображения для встроенных типов, указанных в спецификации JDBC. Если значение равно SQL NULL, драйвер возвращает Java null

Тип возврата - Объект.

Все классы в java являются подклассом Object.

JAVA DOCS

2

getObject() возвращает объект типа Java, связанный с типом столбца. Итак, если это VARCHAR, вы получите String (который расширяет Object). Если это BIT, вы получите Boolean (который расширяет Object) и т. Д. Все расширяет Object в Java.

Вот что делает метод и is documented сделать:

Этот метод возвращает значение заданного столбца в виде объекта Java. Тип объекта Java будет стандартным типом объекта Java, соответствующим типу SQL столбца, после сопоставления для встроенных типов, указанных в спецификации JDBC. Если значением является NULL SQL, драйвер возвращает Java null.

0

Вы можете использовать другой метод getObject(), где вы можете указать, какой тип вы ожидаете:

MyClass myObject = getObject(columnIndex, MyClass.class) 
Смежные вопросы