データベース内のテーブルのリストを取得し、Vector
に格納しようとしています。私はVectorを繰り返し処理したいと思っています。 Buttonアクションコマンドが要素の1つ(つまり、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を使用しました。しかし、残っている問題が1つあります。短時間でボタンを数回クリックすると、このエラーが発生します。「サーバーからのメッセージです。 – arjang27
@ arjang27 - 上記のコードで結果セットを終了していますが、そのエラーはdb自体への接続についてのものです。私はあなたが接続( 'conn'オブジェクト)をどこで開いているのか分かりませんが、以前のものを閉じずに何度もやっているように聞こえます。 –