简单的 getColumnName(0) 调用会抛出无效的列索引:getValidColumnIndex

2023-11-23

我正在尝试编写一个 JTable,它从 ResultSet 获取数据,并使用它创建一个动态大小的表,其中包含来自 ResultSet 的适当列名称和行数据值,但我无法让 JDBC 动态获取列名称。

我知道我的 select 语句很好!我可以使用我编写的 ResultPrinter 类轻松打印结果,但由于某种原因我似乎无法获取列名称。

代码:http://pastebin.com/SSNdCkNu

输出:

Connected to DB!  
SNUM, SNAME, STATUS, CITY, SUPPLIERS_ID_SEQ // printed by static Suppliers class
Columns: 5 // result set shows there are 5 valid columns as expected
Exception in thread "main" java.sql.SQLException: Invalid column index: getValidColumnIndex
at oracle.jdbc.driver.OracleResultSetMetaData.getValidColumnIndex(OracleResultSetMetaData.java:138)
at oracle.jdbc.driver.OracleResultSetMetaData.getColumnName(OracleResultSetMetaData.java:306)
at Main.main(Main.java:15)

JDBC 列索引从 1 开始,而不是从 0 开始。尽可能使用列名检索数据,以避免对结果中列顺序的硬依赖。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简单的 getColumnName(0) 调用会抛出无效的列索引:getValidColumnIndex 的相关文章

随机推荐