Tôi đang viết một chương trình sẽ truy vấn cơ sở dữ liệu truy cập MS, trả về truy vấn dưới dạng tập kết quả, và sau đó tôi muốn chuyển đổi kết quả cuối cùng thành chuỗi String, để tôi có thể vượt qua nó vào hàm tạo của một Swing JComboBox - vì vậy ComboBox sẽ liệt kê các mục được truy vấn trả về.Chuyển đổi kết quả Java thành mảng String
Tôi đã có thể lưu trữ các hàng của tập kết quả vào một ArrayList, và sau đó chuyển đổi ArrayList đó thành một mảng đối tượng, và combobox sẽ liệt kê các mục chính xác, nhưng làm đối tượng. Tôi chỉ đơn giản là không bao giờ có thể đúc ArrayList đó vào một mảng String. Có ai biết nếu điều này là có thể? Đây là một số mã của tôi ...
// 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);
Có ai có thể đưa ra bất kỳ đề xuất nào không? Cảm ơn!
UPDATE:
Đây là vết đống mà tôi đang nhận:
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)
Cảm ơn sự giúp đỡ của bạn. Tôi đã thử những gì bạn đề nghị, và tôi vẫn dường như nhận được những ngoại lệ trên String [] arrLocations = locations.toArray (new String [0]); – littleK
Bây giờ nếu bạn không nhớ, hãy chia sẻ dấu vết ngăn xếp. –
Tôi đã thêm dấu vết ngăn xếp vào bài đăng gốc, cảm ơn. – littleK