데이터베이스의 테이블 목록을 검색하고 Vector
에 저장하려고합니다. 그런 다음 Vector를 반복합니다. 버튼 동작 명령이 요소 중 하나 (예 : actioncommand = dbTable)와 일치하면 코드의 다른 곳에서 선택한 테이블의 데이터를 검색합니다.ActionCommand 및 Vector
지금까지 벡터 목록으로 테이블 목록을 가져올 수 있습니다. 그러나 if 문을 실행할 때 결과가 없습니다. 누군가가 문제를 해결하는 방법을 안내해 주시면 감사하겠습니다. 고맙습니다.
public void actionPerformed(ActionEvent e) {
String actionCMD = e.getActionCommand();
for (Iterator itr = allTables.iterator();itr.hasNext();){
if(actionCMD.toUpperCase().equalsIgnoreCase(
itr.next().toString().toUpperCase())){
dbTable = ationCMD;
break;
}
}
}
public void getDBTables(){
try {
DatabaseMetaData md = conn.getMetaData();
ResultSet resultset = md.getTables(null, null, "%", null);
this.rs = resultset;
allTables = new Vector();
while (rs.next()) {
tableList = new Vector();
tableList.addElement(rs.getString(3));
allTables.addElement(tableList);
}// end while
} catch (SQLException ex) {
Logger.getLogger(TableModel.class.getName()).log(Level.SEVERE, null, ex);
} finally{
if (rs != null) {
try {
rs.close();
} catch (SQLException ex) {
Logger.getLogger(Menu.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
빠른 응답을 보내 주셔서 감사합니다. 나는 stackoverflow 자바에 관한 답변을 찾는 내 주요 리소스라고 행복 해요. 당신은 내 문제를 해결했습니다. 나는 ArrayList를 사용했다. 하나의 문제가 남아 있지만 짧은 시간에 몇 번씩 버튼을 클릭하면 서버에서이 오류 메시지가 나타납니다. "각 이벤트가 끝난 후에도 연결이 너무 많습니다." – arjang27
@ arjang27 - 위의 코드에서 결과 집합을 닫는 중입니다.하지만이 오류는 db 자체에 대한 연결에 대한 것입니다. 나는 당신이 연결 ('conn' 객체)을 여는 것을 알지 못하지만, 이전 연결을 닫지 않고 여러 번하고있는 것처럼 들린다. –