我试图检索数据库中的表的列表并将它们存储在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