MS erişim veritabanını sorgulayacak bir program yazıyor, sorguyu bir sonuç kümesi olarak döndürüyor ve sonra sonuç kümesini bir String dizisine dönüştürmek istiyorum. Bir Swing JComboBox yapıcısı içine - böylece ComboBox sorgu tarafından döndürülen öğeleri listeler.Java resultset'i String dizisine dönüştürme
Sonuç kümesinin satırlarını bir ArrayList'e kaydedebildim ve ArrayList öğesini bir nesne dizisine dönüştürdüm ve açılan kutu doğru öğeleri listeler ancak nesneler olarak listeler. Bu ArrayList'i bir String dizisine dönüştüremiyorum. Bunun mümkün olup olmadığını bilen var mı? İşte benim kodumdan bazıları ...
// Convert the Resultset into an array list
public ArrayList<ArrayList<Object>> Results2Array(ResultSet rs) throws SQLException {
ResultSetMetaData metaData = rs.getMetaData();
int columns = metaData.getColumnCount();
ArrayList<ArrayList<Object>> al = new ArrayList<ArrayList<Object>>();
while (rs.next()) {
ArrayList<Object> record = new ArrayList<Object>();
for (int i = 1; i <= columns; i++) {
Object value = rs.getObject(i);
record.add(value);
}
al.add(record);
}
return al;
}
// Convert ArrayList to Object Array, and pass into GUI
ArrayList<String> Locations = new ArrayList<String>();
ArrayList<String> Months = new ArrayList<String>();
ArrayList<String> Years = new ArrayList<String>();
try {
DB.loadDriver();
DB.makeConnection();
DB.buildStatement();
Locations = DB.getLocations();
Months = DB.getMonths();
Years = DB.getYears();
Object[] arrLocations = Locations.toArray();
Object[] arrMonths = Months.toArray();
Object[] arrYears = Years.toArray();
dbGUI ui = new dbGUI(arrLocations, arrMonths, arrYears);
ui.setVisible(true);
Herhangi bir öneride bulunabilir mi? Teşekkürler!
GÜNCELLEME:
İşteben alıyorum Yığın izleme:
java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.toArray(Unknown Source)
at kidsfirstdb.Main.main(Main.java:23)
Yardımlarınız için teşekkürler. Önerdiğin şeyi denedim ve hala bu istisnaları String [] arrLocations = locations.toArray (new String [0]); – littleK
Şimdi eğer sakıncası yoksa lütfen yığın izlemeyi paylaşın. –
Yığın izini orijinal gönderiye ekledim, teşekkürler. – littleK