的ResultSet.getObject(1);演员在哪里发生?

时间:2013-05-17 12:39:10

标签: java jdbc resultset

我想知道什么时候使用ResultSet实例方法:getObject(int columnNumber);它是如何自动转换为列类型的?这是ResultSet对象隐式完成的事情? 提前谢谢。

4 个答案:

答案 0 :(得分:2)

它不会被转换为列类型,它存储在ResultSet时已经是该类型。此方法将返回Object其类扩展为Object 的任何对象,显然任何类。

答案 1 :(得分:2)

getObject()返回与列类型关联的Java类型的对象。因此,如果它是VARCHAR,您将得到String(扩展Object)。如果它是一个BIT,你将获得一个布尔值(它扩展了Object)等等。一切都在Java中扩展了对象。

这就是方法的作用和is documented要做的事情:

  

此方法将返回给定列的值作为Java对象。 Java对象的类型将是与列的SQL类型对应的缺省Java对象类型,遵循JDBC规范中指定的内置类型的映射。如果值为SQL NULL,则驱动程序返回Java null。

答案 2 :(得分:1)

  

获取当前行中指定列的值   ResultSet对象作为Java编程语言中的Object

     

此方法将返回给定列的值作为Java   宾语。 Java对象的类型将是默认的Java对象   类型对应于列的SQL类型,遵循映射   JDBC规范中指定的内置类型。如果值是   SQL NULL,驱动程序返回Java null

返回类型是Object。

java中的所有类都是Object的子类。

JAVA DOCS

答案 3 :(得分:0)

您可以使用其他getObject()方法来指明您期望的类型:

MyClass myObject = getObject(columnIndex, MyClass.class)