J2SE图书管理系统(6)——图书类别修改、删除功能
1.数据访问层:com.java.dao;
在之前建好的BookTypeDao类里面增加修改和删除的方法:
//图书类别修改方法
public int update_Book(Connection con,BookType booktype) throws Exception{
String sql="update t_booktype set bookTypeName=?,bookTypeDesc=? where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, booktype.getBookTypeName());
pstmt.setString(2, booktype.getBookTypeDesc());
pstmt.setInt(3, booktype.getId());
return pstmt.executeUpdate();
}
//图书类别删除方法
public int delete_Book(Connection con,String id) throws Exception{
String sql="delete from t_booktype where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
return pstmt.executeUpdate();
}
2.视图层:com.java.view;
然后在BookType_Manage_InterFrm类视图上面写图书类别删除的界面:
先在界面上添加一个JPanel控件,然后添加其他控件:
先将文本框重命名:编号重命名为id_Txt;图书类别名称重命名为bookTypeName_Txt;描述重命名为bookTypeDesc_Txt;
首先写一个行点击事件,就是在JTable上点击相关的书籍,下方的表单会出现对应的详细信息:
(1)找到BookType_Manage_InterFrm视图,
右键点击scrollPane里面的bookTypeTable->Add event handler->mouse->mousePressed;
(2)这时系统会在Source里面生成对应的鼠标点击事件:
这里我们在mousePressed()方法里面写一个bookTypeTableMousePressed(e)方法,
将实现点击的代码写在这个方法里面,并将方法的定义写在系统自动生成的mousePressed()方法的外部;
(3)测试环节:
测试成功!
图书类别修改:
(1)找到BookType_Manage_InterFrm视图,右击修改按钮->Add event handler->action->actionPerformed;
系统会自动在Source里面生成对应的方法:
这里我们在actionPerformed()方法里面写一个bookTypeUpdateActionEvent(e)方法,
将实现图书类别修改功能的代码写在这个方法里面,并将方法的定义写在系统自动生成的actionPerformed()方法的外部;
/**
* 图书类别修改功能
* @param e
*/
private void bookTypeUpdateActionEvent(ActionEvent evt) {
//获取界面信息
String id=id_Txt.getText();
String bookTypeName=bookTypeName_Txt.getText();
String bookTypeDesc=bookTypeDesc_Txt.getText();
//判断id是否为空,若为空,则不能修改
if(StringUtil.isEmpty(id)){
JOptionPane.showMessageDialog(null, "请选择要修改的记录!");
return;
}
if(StringUtil.isEmpty(bookTypeName)){
JOptionPane.showMessageDialog(null, "图书类别名称不能为空!");
return;
}
//获取到信息,进行实例化
BookType bookType=new BookType(Integer.parseInt(id),bookTypeName,bookTypeDesc);
Connection con=null;
try {
con=dbUtil.getCon();
int modifyNum=bookTypeDao.update_Book(con, bookType);
if(modifyNum==1){
JOptionPane.showMessageDialog(null, "修改成功!");
//重置表单
this.resetValue();
//填充表单
this.fillTable(new BookType());
}else{
JOptionPane.showMessageDialog(null, "修改失败!");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
dbUtil.close(con);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
这里我们需要提前写一个resetValue()方法 ,起重置表单的作用;
即点击修改之后,表单要清空!
还有在对bookType进行实例化的时候,要在 BookType这个类里面新添加一个有id,bookTypeName,bookTypeDesc三个参数的构造方法!
(2)进行测试;
将数据库中计算机类图书类别修改为计算机类1,将图书描述修改为Java编程思想1;
运行之后,我们看数据库中数据的变化:
明显数据库中数据已经修改成功!
图书类别删除:
(1)找到BookType_Manage_InterFrm视图,右击删除按钮->Add event handler->action->actionPerformed;
系统会自动在Source里面生成对应的方法:
这里我们在actionPerformed()方法里面写一个bookTypeDeleteActionEvent(e)方法,
将实现图书类别修改功能的代码写在这个方法里面,并将方法的定义写在系统自动生成的actionPerformed()方法的外部;
/**
* 图书类别删除功能
* @param e
*/
private void bookTypeDeleteActionEvent(ActionEvent evt) {
//获取界面信息
String id=id_Txt.getText();
//判断id是否为空,若为空,则不能删除
if(StringUtil.isEmpty(id)){
JOptionPane.showMessageDialog(null, "请选择要删除的记录!");
return;
}
int n=JOptionPane.showConfirmDialog(null, "确定要删除该记录吗?");
if(n==0){
Connection con=null;
try {
con=dbUtil.getCon();
int deleteNum=bookTypeDao.delete_Book(con, id);
if(deleteNum==1){
JOptionPane.showMessageDialog(null, "删除成功!");
this.resetValue();
this.fillTable(new BookType());
}else{
JOptionPane.showMessageDialog(null, "删除失败!");
}
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "删除失败!");
}finally{
try {
dbUtil.close(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
(2)进行测试;
我们删除了计算机类这个图书类别的书籍;
运行之后,我们看看数据库中数据的变化:
可以看到,数据删除成功!