Java+Swing: 删除数据 整理15

文章介绍了如何在Java程序中添加点击事件,当用户选择删除操作时,在MainViewHandler中处理逻辑,通过StudentServiceImpl调用deleteStudent方法,使用SQL语句执行数据库删除操作,并显示结果。
摘要由CSDN通过智能技术生成

1. 添加点击事件

 

2. 在MainViewHandler处理类中,实现相应的处理操作 

 if ("删除".equals(text)){
            int[] selectedRowIds = mainView.getSelectedRowIds();
            if (selectedRowIds.length == 0){
                JOptionPane.showMessageDialog(mainView, "请选择要删除的数据!");
                return;
            }
            int option = JOptionPane.showConfirmDialog(mainView, "确定要删除选中的" + selectedRowIds.length + "条数据吗?",
                    "确认删除?", JOptionPane.YES_NO_OPTION);
            if (option == JOptionPane.YES_OPTION) {  // option=0, 表示执行删除操作
                StudentServiceImpl studentService = new StudentServiceImpl();
                boolean deleteStudentResult = studentService.deleteStudent(selectedRowIds);

                if (deleteStudentResult) {
                    mainView.reloadTable();
                } else {
                    JOptionPane.showMessageDialog(mainView, "删除失败!");
                }
           }
  }

 

3. 接口

 boolean deleteStudent(int[] selectedRowIds);

 

4. 实现类

    // 删除
    @Override
    public boolean deleteStudent(int[] selectedRowIds) {
        StringBuilder sql = new StringBuilder();
        sql.append("delete from detail where id in ( ");
        for (int i=0; i<selectedRowIds.length; i++) {
            if (i == selectedRowIds.length-1) {
                sql.append(" ? ");
            } else {
                sql.append(" ?, ");
            }
        }
        sql.append(" ) ");

        // 执行
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        TableDTO tableDTO = new TableDTO(); // 返回的数据
        try {
            connection = DBUtil.getConnection();
            preparedStatement = connection.prepareStatement(sql.toString());
            for (int i=0; i<selectedRowIds.length; i++) {
                // 设置参数,从 1 开始
                preparedStatement.setInt(i+1, selectedRowIds[i]);
            }

            return preparedStatement.executeUpdate() == selectedRowIds.length;  // 执行查询返回结果集(返回相应删除的数量)
        }catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.closeRS(resultSet);
            DBUtil.closePS(preparedStatement);
            DBUtil.closeConnection(connection);
        }
        return false;
    }

 

 5. 效果展示

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小蟹呀^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值