我想知道何时使用 ResultSet 实例方法:getObject(int columnNumber);
它为什么会自动转换为列类型?它是由 ResultSet 对象隐式完成的吗?提前致谢。
4 回答
getObject() 返回与列类型关联的 Java 类型的对象。所以如果它是一个 VARCHAR,你会得到一个String
(它扩展了 Object)。如果它是一个 BIT,你会得到一个布尔值(它扩展了 Object)等等。一切都扩展了 Java 中的 Object。
这就是该方法所做的并且记录在案的操作:
此方法将给定列的值作为 Java 对象返回。Java 对象的类型将是与列的 SQL 类型对应的默认 Java 对象类型,遵循 JDBC 规范中指定的内置类型的映射。如果该值为 SQL NULL,则驱动程序返回 Java NULL。
它不会转换为列类型,它在存储在ResultSet
. 此方法将返回一个Object
或任何其类扩展的对象Object
,显然是任何类。
获取此ResultSet对象当前行中指定列的值作为Java编程语言中的Object
此方法将给定列的值作为 Java 对象返回。Java 对象的类型将是与列的 SQL 类型对应的默认 Java 对象类型,遵循 JDBC 规范中指定的内置类型的映射。如果该值为 SQL NULL,则驱动程序返回 Java null
返回类型是对象。
java中的所有类都是Object的子类。
You can use a different getObject()
method where you can indicate what type you are expecting:
MyClass myObject = getObject(columnIndex, MyClass.class)