我想知道何时使用 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)