MS 액세스 데이터베이스를 쿼리하고 결과 집합으로 쿼리를 반환 한 다음 결과 집합을 궁극적으로 String 배열로 변환하여 전달할 수있는 프로그램을 작성하고 있습니다. Swing JComboBox의 생성자에 추가합니다. ComboBox는 쿼리에서 반환 한 항목을 나열합니다.Java 결과 집합을 문자열 배열
결과 집합의 행을 ArrayList에 저장 한 다음 해당 ArrayList를 개체 배열로 변환하면 콤보 상자에 올바른 항목이 나열되지만 개체로 표시됩니다. 나는 그 ArrayList를 String 배열로 캐스트 할 수 없다. 이것이 가능한지 아는 사람 있습니까? 다음은 내 코드 중 일부입니다 ...
// 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);
누구든지 제안 할 수 있습니까? 감사!
UPDATE :
여기내가 수신하고 스택 추적은 다음과 같습니다
이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)
도움 주셔서 감사합니다. 나는 당신이 제안한 것을 시도해 보았고, 나는 여전히 String []에 예외를 가져 오는 것 같다. arrLocations = locations.toArray (new String [0]); – littleK
괜찮 으면 스택 추적을 공유하십시오. –
스택 추적을 원래 게시물에 추가했습니다. 감사합니다. – littleK