users라는 테이블이있는 SQL 데이터베이스를 만들었습니다. user_id, user_name 및 이메일을 보유합니다. 사용자가 모든 레코드를 검색하고 필터링 된 레코드를 JTable
.
사용자가 user_id, user_name 또는 이메일을 검색 할 수 있음을 의미하는 검색된 값을 기반으로 검색 결과가 필터링하는 행을 삭제하고 싶습니다.
사용자 {user_id, user_name, email}
이것은 내가 가진 것입니다
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로 검색 할 때만 행을 삭제합니다.
사용자 {user_id, user_name, email}
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);
}
}
이 코드를 사용하면 항상 TRUE
WHERE 절에서를 얻으므로 항상 테이블을 완전히 삭제 합니다.
경우 searchTxt.getText()
"안녕하세요"입니다, 준비된 명령문이 될 것입니다
DELETE from user where hello = hello
다음과 같습니다.
DELETE from user where true
또는
DELETE from user
searchTxt
과 를 구별하면됩니다.columnName
private void deleteSelectedRows(){
try {
String sql = "DELETE from user where ? = ?";
pst = conn.prepareStatement(sql);
pst.setString(1, columnName);
pst.setString(2, searchTxt.getText());
((DefaultTableModel) userTable.getModel()).removeRow(userTable.getSelectedRow());
pst.execute();
} catch (Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다