关于Jtable删除选中行,对应的删除数据库对应行。
public
void actionPerformed(ActionEvent e){
if(e.getSource() == jb1){
MainFrame.rowNum =
MainFrame.table.getSelectedRow();//得到选中行的行号
MainFrame.val =
(String)(MainFrame.table.getValueAt(MainFrame.rowNum,
0));
MainFrame.dtm.removeRow(MainFrame.rowNum);
PersonManager.deletePerson(MainFrame.val);
setVisible(false);
}
}
我主要通过MainFrame中静态的int rowNum,String val,DefaultTableModel dtm和JTable table来进行参数传递。其中MainFrame.table.getSelectedRow()获得行号。由于我们是通过对应姓名删除对应行,所以getValueAt(行号,0)得到姓名并且传递给val。最后可以通过DefaultTableModel中的removeRow(行号)删除指定行。然后调用PersonManager中的deletePerson(指定行姓名)方法删除数据库中相应的行即可。
数据库操作具体方法如下:
public
static boolean deletePerson(String Name){
boolean flag = false;
try{
Connection con = ConnectionUtil.getConnection();
PreparedStatement pstmt = con
.prepareStatement("delete from person where name = ?");
pstmt.setString(1,Name);
if(pstmt.executeUpdate() > 0)
flag = true;
con.close();
}catch(Exception e){
}return flag;
}
由于数据库连接资料较多,代码在此省略,需要的可以查询数据库相关资料。虽然实现了目的,但是我觉得代码写得还是不规范,不过这只是初学者的练习罢了,仅供交流学习。
加载中,请稍候......