Bir ResultSet'ten veri alan bir JTable yazmaya çalışıyorum ve ResultSet'ten uygun sütun adlarına ve satır veri değerlerine sahip dinamik boyutlu bir tablo oluşturmak için bunu kullanıyorum ama ben dinamik olarak benim için sütun isimleri almak için JDBC alamıyorum.Basit getColumnName (0) çağrısı geçersiz sütun dizini: getValidColumnIndex
Seçtiğim bildirimin iyi olduğunu biliyorum! Sonuçları yazdığım ResultPrinter sınıfımla kolayca yazdırabilirim ancak bir sebepten dolayı sütun isimlerini göremiyorum.
kodu: http://pastebin.com/SSNdCkNuçıkışı:
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)
Vay bu oldukça saçma. Ya da sadece hapsedilmiştim çünkü hata çok basitti. Her iki şekilde de programatik olarak sütun sayısını almayı ve sonra isimlerini almanın iyi bir yöntem olduğunu düşündüm. Çünkü kullanıcı tüm sütunları kullanmayan bir seçim ifadesi yaparsa, seçili olan veya olmayan sütunların isimlerini bilmemin bir yolu yoktur. – anon58192932
Belirli bir sonuç kümesinde bulunan sütunlarını veri türleriyle birlikte tanımak için ResultSetMetaData'yı kullanabilirsiniz. – Vikdor
Evet, benim yaptığım şey budur :) Kolaylık sağlamak için sabit kodlanmış 0'ı kullanıyorum çünkü hatanın kaynağını bulmaya çalışıyordum. – anon58192932