Java 通过链接到数据库的id从jtable中多次删除记录
我的问题:如何允许用户通过按钮从jtable执行多次删除。该表是Java 通过链接到数据库的id从jtable中多次删除记录,java,database,swing,jtable,Java,Database,Swing,Jtable,我的问题:如何允许用户通过按钮从jtable执行多次删除。该表是 链接到我的数据库。我在另一个类中创建了一个表模型,并链接到我的SalesReceiptTable。 当用户单击delete按钮时,我可以从db和表中删除一行。 我应该为所选行执行循环吗 //Button to perform delete JButton btnDelete = new JButton("Delete"); btnDelete.setFont(new Font("Tahoma", Font.PLAI
链接到我的数据库。我在另一个类中创建了一个表模型,并链接到我的SalesReceiptTable。 当用户单击delete按钮时,我可以从db和表中删除一行。 我应该为所选行执行循环吗
//Button to perform delete
JButton btnDelete = new JButton("Delete");
btnDelete.setFont(new Font("Tahoma", Font.PLAIN, 13));
btnDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int rowSelected=SalesReceiptTable.getSelectedRow();
if(rowSelected>=0)
{
String id = SalesReceiptTable.getValueAt(rowSelected, 7).toString();
SalesReceipt1 e1=new SalesReceipt1(Integer.parseInt(id));
e1.deleteSalesReceipt();
ArrayList<SalesReceipt1> result= SalesReceipt1.retrieveAllSalesReceipt();
SalesReceiptTableModel model= new SalesReceiptTableModel(result);
SalesReceiptTable.setModel(model);
}
else{
JOptionPane.showMessageDialog(null,"No record selected","Alert", JOptionPane.ERROR_MESSAGE);
}
//My sql statement in my entity class
public boolean deleteSalesReceipt(){
boolean success = false;
DBController db = new DBController();
String dbQuery;
db.getConnection();
dbQuery = "DELETE FROM SalesReceipt WHERE salesReceiptId ='" + salesReceiptId +"'";
if (db.updateRequest(dbQuery) == 1){
success = true;
}
db.terminate();
return success;
}
//执行删除的按钮
JButton btnDelete=新JButton(“删除”);
setFont(新字体(“Tahoma”,Font.PLAIN,13));
btnDelete.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
int rowSelected=SalesReceiptTable.getSelectedRow();
如果(选定行>=0)
{
String id=SalesReceiptTable.getValueAt(rowSelected,7).toString();
SalesReceipt1 e1=新的SalesReceipt1(Integer.parseInt(id));
e1.deleteSalesReceipt();
ArrayList结果=SalesReceipt1.RetrieveAllSalesReceipt1();
SalesReceiptTableModel=新的SalesReceiptTableModel(结果);
SalesReceiptable.setModel(模型);
}
否则{
JOptionPane.showMessageDialog(null,“未选择记录”,“警报”,JOptionPane.ERROR\u消息);
}
//实体类中的sql语句
公共布尔deleteSalesReceipt(){
布尔成功=假;
DBController db=新的DBController();
字符串数据库查询;
db.getConnection();
dbQuery=“从SalesReceipt中删除,其中salesReceiptId=”+salesReceiptId+”;
if(db.updateRequest(dbQuery)==1){
成功=真实;
}
db.terminate();
回归成功;
}
有几种可能的方法:
- 如图所示,在表的
方法中指定setSelectionMode()
,并检查ListSelectionModel.MULTIPLE\u INTERVAL\u SELECTION
getSelectedRows()返回的结果
- 如图所示,添加一列复选框,并仅在选择任何复选框时启用“删除”按钮
- 在视图索引和模型行索引之间转换,如和所述
- 考虑使用
列表
来缓存从模型中删除但尚未从数据库中删除的行,以支持撤消