私は、usersというテーブルを持つsqlデータベースを作成しました。 user_id、user_name、およびemailを保持します。ユーザーが任意のレコードを検索できるようにフォームを作成し、フィルタリングされたレコードをJTable
に表示します。検索された値に基づいてjtableとsqlデータベースから検索された行を削除する方法
ユーザーがuser_id、user_nameまたはemailのいずれかを検索できるという意味で、検索結果のフィルタを検索値の行に基づいて削除します。
ユーザー{user_idは、USER_NAME、電子メール}
これは私が
private void deleteSelectedRows(){
try {
String sql = "DELETE from user where ? = ?";
pst = conn.prepareStatement(sql);
pst.setString(1, searchTxt.getText());
pst.setString(2, searchTxt.getText());
((DefaultTableModel)userTable.getModel()).removeRow(userTable.getSelectedRow());
pst.execute();
} catch (Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
searchTxt
がテキストフィールドである持っているものです。 このコードは、テーブル内のすべての行を削除します。
DELETE from user where user_id = ?
に変更すると、user_idで検索された行だけが削除されます。
searchTxt
間とcolumnName
を区別する必要がそれとも
ありがとうございました。それは素晴らしい説明でした。複数の列が関係しているので複数の列名を使用しますか? –
@TLinただし、columnNameごとに1つずつ異なるsearchTxtも使用する必要があり、すべてのフィールドが検索に使用されていない場合は、クエリをdinamically構成する必要があります。それが有用であれば、答えを受け入れたものにすることがとても親切である。 – RubioRic
私はコンボボックスを使用し、コンボボックスから選択した値に基づいて検索を修正しました。ありがとう、あなたの承認は途中です! –