11

ResultSetからデータを取得し、それを使用してResultSetから適切な列名と行データ値を持つ動的サイズのテーブルを作成するJTableを作成しようとしていますが、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)
4

2 に答える 2

22

JDBC列インデックスは、0ではなく1から始まります。可能な限り、結果の列の順序に大きく依存しないように、列名を使用してデータを取得することをお勧めします。

于 2012-10-08T19:10:19.753 に答える
4

列インデックスは1から始まります。したがって、列変数を指す変数を1増やします。

于 2013-02-04T11:33:46.057 に答える