我試圖訪問databasemetadata
檢索存在於它的所有表的屬性存在於數據庫中。 getTables
應該返回10的ResultSet
列。不能以檢索所有表使用的DatabaseMetaData
當我嘗試遍歷ResultSet
獲取所有列數據,我得到
Exception in thread "main" java.sql.SQLException: Invalid column index
我取回從第一行前5個數據,然後打印第6列時發生異常 ,TYPE_CAT
。
相關代碼:
DatabaseMetaData dbmd = connection1.getMetaData();
ResultSet rs = dbmd.getTables(null, null, null, new String[]{"TABLE"});
while(rs.next()){
for(int i=1;i<11;i++){
System.out.print(rs.getString(i)+" ");
}
System.out.println("");
}
看起來很奇怪,從1開始計數。 – Randy
@Randy:這就是JDBC的工作原理(所有內容都基於1) –
嘗試使用rs.getMetadata()。getColumnCount()打印驅動程序返回的實際列數()'。也許你有一個錯誤的JDCB驅動程序,它不符合JDBC規範。你正在使用哪種DBMS和JDBC驅動程序? –