我試圖檢索數據庫中的表的列表並將它們存儲在Vector
中。然後我希望遍歷Vector。如果Button動作命令匹配其中一個元素(即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是我找到有關java的答案的主要資源。你解決了我的問題。我使用ArrayList。有一個問題仍然存在,那就是當我在短時間內幾次點擊按鈕時,我得到這個錯誤「來自服務器的消息:」儘管在每個事件之後關閉連接,但連接「太多」! – arjang27 2012-02-21 02:12:35
@ arjang27 - 你在上面的代碼中關閉了你的結果集,但是那個錯誤是在討論與db本身的連接。我不知道你打開連接的位置('conn'對象),但是聽起來好像你在多次關閉連接而沒有關閉連接。 – 2012-02-21 02:24:09