J2SE图书管理系统(9)——图书修改、删除功能

1.数据访问层:com.java.dao; 

在之前建好的BookDao类里面增加修改和删除的方法:

//图书删除方法
	public int deleteBook(Connection con,String id)throws Exception{
		String sql="delete from t_book where id=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, id);
		return pstmt.executeUpdate();
	}
	
	//图书修改方法
	public int updateBook(Connection con,Book book)throws Exception{
		String sql="update t_book set bookName=?,author=?,sex=?,price=?,bookDesc=?,bookTypeId=? where id=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, book.getBookName());
		pstmt.setString(2, book.getAuthor());
		pstmt.setString(3, book.getSex());
		pstmt.setFloat(4, book.getPrice());
		pstmt.setString(5, book.getBookDesc());
		pstmt.setInt(6, book.getBookTypeId());
		pstmt.setInt(7, book.getId());
		return pstmt.executeUpdate();
	}

 

 2.视图层:com.java.view;

然后在Book_Manage_InterFrm类视图上面写图书类别删除的界面:

先在界面上添加一个JPanel控件,然后添加其他控件:

J2SE图书管理系统(9)——图书修改、删除功能_第1张图片

然后进行重命名:

编号框命名为:id_Txt;

图书名称命名为:bookName_Txt;

作者性别男命名为:man_Jrb;女命名为:woman_Jrb;

价格命名为:price_Txt;

图书作者命名为:author_Txt;

图书类别命名为:bookType_Txt;

图书描述命名为:bookDesc_Txt;

然后设置 一下边框代码;

 

首先写一个行点击事件,就是在bookTable上点击相关的书籍,下方的表单会出现对应的详细信息:

(1)找到Book_Manage_InterFrm视图,

          右键点击scrollPane里面的bookTable->Add event handler->mouse->mousePressed;

J2SE图书管理系统(9)——图书修改、删除功能_第2张图片

(2)这时系统会在Source里面生成对应的鼠标点击事件:

 J2SE图书管理系统(9)——图书修改、删除功能_第3张图片

这里我们在MousePressed()方法里面写一个bookTableMousePressed(met)方法,

将实现点击的代码写在这个方法里面,并将方法的定义写在系统自动生成的bookTableMousePressed()方法的外部;

//表格行点击事件方法
	private void bookTableMousePressed(MouseEvent met) {
		//获取选中的行,返回行号
		int row=this.bookTable.getSelectedRow();
		//获取第row行,第1列的值
		this.id_Txt.setText((String)bookTable.getValueAt(row, 0));
		//获取第row行,第2列的值
		this.bookName_Txt.setText((String)bookTable.getValueAt(row, 1));
		//获取第row行,第3列的值
		this.author_Txt.setText((String)bookTable.getValueAt(row, 2));
		//获取性别
		String sex=(String)bookTable.getValueAt(row, 3);
		//人工判断
		if("男".equals(sex)){
			this.man_Jrb.setSelected(true);
		}else if("女".equals(sex)){
			this.woman_Jrb.setSelected(true);
		}
		//获取第row行,第5列的值
		this.price_Txt.setText((Float)bookTable.getValueAt(row, 4)+"");
		//获取第row行,第6列的值
		this.bookDesc_Txt.setText((String)bookTable.getValueAt(row, 5));
		//获取第row行,第7列的值
		String bookTypeName=(String)this.bookTable.getValueAt(row, 6);
		//获取下拉框的行数
		int n=this.bookType_Jcb.getItemCount();
		//开始遍历下拉框的所有内容
		for(int i=0;i

这里注意,我们在写修改下拉框时,要在相应的地方加上相应的代码,比如:

 J2SE图书管理系统(9)——图书修改、删除功能_第4张图片

 等等...

这时我们可以测试一下,点击列表里的相关书籍,下方的表格会自动出来对应的信息:

J2SE图书管理系统(9)——图书修改、删除功能_第5张图片 这时,代表行点击事件已经成功生效!

 

图书修改:

先在“修改”按钮上添加点击事件处理:

(1)找到Book_Manage_InterFrm视图,右击修改按钮->Add event handler->action->actionPerformed;

系统会自动在Source里面生成对应的方法:

J2SE图书管理系统(9)——图书修改、删除功能_第6张图片

这里我们在actionPerformed()方法里面写一个bookUpdateActionEvent(e)方法,

将实现图书类别修改功能的代码写在这个方法里面,并将方法的定义写在系统自动生成的actionPerformed()方法的外部;

//图书修改事件方法
	private void bookUpdateActionPerformed(ActionEvent evt) {
		//获取界面信息
		String id=this.id_Txt.getText();
		String bookName=this.bookName_Txt.getText();
		String author=this.author_Txt.getText();
		String price=this.price_Txt.getText();
		String bookDesc=this.bookDesc_Txt.getText();
		
		//判断id是否为空,若为空,则不能修改
		if(StringUtil.isEmpty(id)){
			JOptionPane.showMessageDialog(null, "请选择要修改的记录!");
			return;
		}
		//判断其他信息是否为空
		if(StringUtil.isEmpty(bookName)){
			JOptionPane.showMessageDialog(null, "图书名称不能为空!");
			return;
		}
		if(StringUtil.isEmpty(author)){
			JOptionPane.showMessageDialog(null, "作者名称不能为空!");
			return;
		}
		if(StringUtil.isEmpty(price)){
			JOptionPane.showMessageDialog(null, "价格不能为空!");
			return;
		}
		
		//获取性别信息
		String sex="";
		if(man_Jrb.isSelected()){
			sex="男";
		}else if(woman_Jrb.isSelected()){
			sex="女";
		}
		
		//获取图书类别id
		BookType bookType=(BookType) bookType_Jcb.getSelectedItem();
		int bookTypeId=bookType.getId();
		
		//进行封装
		Book book=new Book(Integer.parseInt(id), bookName, author, sex, Float.parseFloat(price), bookTypeId, bookDesc);
		
		//进行添加操作,数据库连接
		Connection con=null;
		try {
			con=dbUtil.getCon();
			int addNum=bookDao.updateBook(con,book);
			if(addNum==1){
				JOptionPane.showMessageDialog(null, "图书修改成功!");
				resetValue();
				this.fillTable(new Book());
			}else{
				JOptionPane.showMessageDialog(null, "图书修改失败!");
			}
		} catch (Exception e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "图书修改失败!");
		} finally{
			try {
				dbUtil.close(con);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	

这里我们需要提前写一个resetValue()方法 ,起重置表单的作用;

即点击修改之后,表单要清空!

J2SE图书管理系统(9)——图书修改、删除功能_第7张图片

 (2)进行测试;

J2SE图书管理系统(9)——图书修改、删除功能_第8张图片

数据已修改成功!

 

图书删除:  

(1)找到BookType_Manage_InterFrm视图,右击删除按钮->Add event handler->action->actionPerformed;

系统会自动在Source里面生成对应的方法:

J2SE图书管理系统(9)——图书修改、删除功能_第9张图片

 这里我们在actionPerformed()方法里面写一个bookTypeDeleteActionEvent(e)方法,

将实现图书类别修改功能的代码写在这个方法里面,并将方法的定义写在系统自动生成的actionPerformed()方法的外部;

/**
	 * 图书删除事件方法
	 * @param evt
	 */
	private void bookDeleteActionPerformed(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=bookDao.deleteBook(con, id);
				if(deleteNum==1){
					JOptionPane.showMessageDialog(null, "删除成功!");
					this.resetValue();
					this.fillTable(new Book());
				}else{
					JOptionPane.showMessageDialog(null, "删除失败!");
				}
			} catch (Exception e) {
				e.printStackTrace();
				JOptionPane.showMessageDialog(null, "删除失败!");
			}finally{
				try {
					dbUtil.close(con);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
	}

 (2)进行测试;

J2SE图书管理系统(9)——图书修改、删除功能_第10张图片

操作时候结果为:

J2SE图书管理系统(9)——图书修改、删除功能_第11张图片

可以看到操作成功! 

你可能感兴趣的:(------【图书管理系统】,●,J2SE入门级项目)