1、添加图书修改,删除的Dao代码

/*** 图书Dao类* @author Administrator**/
public class BookDao {/*** 图书添加* @param con* @param book* @return* @throws Exception */public int add(Connection con,Book book) throws Exception{String sql="insert into t_book values(null,?,?,?,?,?,?)";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.setInt(5, book.getBookTypeId());pstmt.setString(6, book.getBookDesc());pstmt.setInt(7, book.getId());return pstmt.executeUpdate();}/*** 图书信息查询* @param con* @param book* @return* @throws Exception*/public ResultSet list(Connection con,Book book)throws Exception{StringBuffer sb=new StringBuffer("select * from t_book b,t_bookType bt where b.bookTypeId=bt.id");if(StringUtil.isNotEmpty(book.getBookName())){sb.append(" and b.bookName like '%"+book.getBookName()+"%'");}if(StringUtil.isNotEmpty(book.getAuthor())){sb.append(" and b.author like '%"+book.getAuthor()+"%'");}if(book.getBookTypeId()!=null && book.getBookTypeId()!=-1){sb.append(" and b.bookTypeId="+book.getBookTypeId());}PreparedStatement pstmt=con.prepareStatement(sb.toString());return pstmt.executeQuery();}
----------------------------------------------------------------------------------- /*** 图书信息删除* @param con* @param id* @return* @throws Exception*/public int delete(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();}/*** 产品信息修改* @param con* @param book* @return* @throws Exception*/public int update(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());return pstmt.executeUpdate();}----------------------------------------------------------------------------
}

2、在“图书管理-修改”窗体新建图书修改删除组件

在BookManageInterFrm窗体上添加JLabel,JTextField,JComboBox,JTextArea,JButtonJRadioButton组件


重命名组件:

实现bookTable的行点击事件

@Override
public void mousePressed(MouseEvent e) {bookTableMousePressed(e);
}

调用方法:

this.fillBookType("modify");

修改fillBookType方法,为modify时:

/*** 初始化下拉框*/private void fillBookType(String type){Connection con=null;BookType bookType=null;try{con=dbUtil.getCon();ResultSet rs=bookTypeDao.list(con, new BookType());if("search".equals(type)){bookType=new BookType();bookType.setBookTypeName("请选择");bookType.setId(-1);this.s_bookTypeJcb.addItem(bookType);}while(rs.next()){bookType=new BookType();bookType.setBookTypeName(rs.getString("bookTypeName"));bookType.setId(rs.getInt("id"));if("search".equals(type)){this.s_bookTypeJcb.addItem(bookType);}else if("modify".equals(type)){-----------------------------------------------------------------------------------this.bookTypeJcb.addItem(bookType);
------------------------------------------------------------------------------------------}}}catch(Exception e){e.printStackTrace();}finally{try {dbUtil.close(con);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
/*** 表格行点击处理* @param e*/private void bookTableMousePressed(MouseEvent e) {int row=this.bookTable.getSelectedRow();//获取选中的行this.idTxt.setText(bookTable.getValueAt(row, 0)+"");this.bookNameTxt.setText((String)bookTable.getValueAt( row, 1));this.authorTxt.setText((String)bookTable.getValueAt(row, 2));String sex=(String)bookTable.getValueAt(row, 3);if("男".equals(sex)){this.manJrb.setSelected(true);}else if("女".equals(sex)){this.femaleJrb.setSelected(true);}this.priceTxt.setText((Float)bookTable.getValueAt(row, 4)+"");this.bookDescTxt.setText((String)bookTable.getValueAt(row, 5));String bookTypeName=(String)this.bookTable.getValueAt(row, 6);//遍历下拉框int n=this.bookTypeJcb.getItemCount();for(int i=0;i<n;i++){BookType item=(BookType)this.bookTypeJcb.getItemAt(i);if(item.getBookTypeName().equals(bookTypeName)){this.bookTypeJcb.setSelectedIndex(i);}}}

3、实现修改功能:

修改按钮新建事件

public void actionPerformed(ActionEvent e) {bookUpdateActionPerformed(e);
}

封装一个重置表单的方法

/*** 重置表单*/private void resetValue() {this.idTxt.setText("");this.bookNameTxt.setText("");this.authorTxt.setText("");this.priceTxt.setText("");this.manJrb.setSelected(true);this.bookDescTxt.setText("");if(this.bookTypeJcb.getItemCount()>0){this.bookTypeJcb.setSelectedIndex(0);}}
/*** 图书修改事件处理*/
private void bookUpdateActionPerformed(ActionEvent evt) {String id=this.idTxt.getText();if(StringUtil.isEmpty(id)){JOptionPane.showMessageDialog(null, "请选择图书!");return;}String bookName=this.bookNameTxt.getText();String author=this.authorTxt.getText();String price=this.priceTxt.getText();String bookDesc=this.bookDescTxt.getText();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(manJrb.isSelected()){sex="男";}else if(femaleJrb.isSelected()){sex="女";}//获取下拉框BookType bookType=(BookType)bookTypeJcb.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.update(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 (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

4、实现删除功能

删除按钮新建事件

public void actionPerformed(ActionEvent e) {bookDeleteActionPerformed(e);}
/*** 图书删除事件处理* @param e*/private void bookDeleteActionPerformed(ActionEvent evt) {String id=this.idTxt.getText();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.delete(con, id);if(deleteNum==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 (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

5、删除图书类别时做判断,图书类别下是否存在图书

/*** 图书Dao类* @author Administrator**/
public class BookDao {/*** 图书添加* @param con* @param book* @return* @throws Exception */public int add(Connection con,Book book) throws Exception{String sql="insert into t_book values(null,?,?,?,?,?,?)";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.setInt(5, book.getBookTypeId());pstmt.setString(6, book.getBookDesc());return pstmt.executeUpdate();}/*** 图书信息查询* @param con* @param book* @return* @throws Exception*/public ResultSet list(Connection con,Book book)throws Exception{StringBuffer sb=new StringBuffer("select * from t_book b,t_bookType bt where b.bookTypeId=bt.id");if(StringUtil.isNotEmpty(book.getBookName())){sb.append(" and b.bookName like '%"+book.getBookName()+"%'");}if(StringUtil.isNotEmpty(book.getAuthor())){sb.append(" and b.author like '%"+book.getAuthor()+"%'");}if(book.getBookTypeId()!=null && book.getBookTypeId()!=-1){sb.append(" and b.bookTypeId="+book.getBookTypeId());}PreparedStatement pstmt=con.prepareStatement(sb.toString());return pstmt.executeQuery();}/*** 图书信息删除* @param con* @param id* @return* @throws Exception*/public int delete(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();}/*** 产品信息修改* @param con* @param book* @return* @throws Exception*/public int update(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();}
--------------------------------------------------------------------------------    /*** 指定图书类别下是否存在图书* @param con* @param bookTypeId* @return* @throws Exception*/public boolean existBookByBookTypeId(Connection con,String bookTypeId)throws Exception{String sql="select * from t_book where bookTypeId=?";PreparedStatement pstmt=con.prepareStatement(sql);pstmt.setString(1, bookTypeId);ResultSet rs=pstmt.executeQuery();return rs.next();}
-----------------------------------------------------------------------------
}

在BookTypeManageInterFrm 图书类别删除事件处理里加判断

/*** 图书类别删除事件处理* @param e*/private void bookTypeDeleteActionEvent(ActionEvent evt) {String id=idTxt.getText();if(StringUtil.isEmpty(id)){JOptionPane.showMessageDialog(null, "请选择要删除的记录");return;}int n=JOptionPane.showConfirmDialog(null, "是否删除该记录");if(n==0){Connection con=null;try{con=dbUtil.getCon();
----------------------------------------------------------------------------------------boolean flag=bookDao.existBookByBookTypeId(con, id);if(flag){JOptionPane.showMessageDialog(null, "当前图书类存在图书,不可删除");return;}
---------------------------------------------------------------------------------------int deleteNum=bookTypeDao.delete(con, id);if(deleteNum==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) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

9、图书修改,删除功能相关推荐

  1. 6、图书类别修改删除功能

    实现图书类别修改功能 1.添加修改的Dao方法 /*** 图书类别Dao类* @author Administrator**/ public class BookTypeDao {/*** 图书类别添 ...

  2. 使用vuejs实现简单的图书增加删除功能

    概要: 1.实现删除功能. 2.实现增加功能. 代码: css table,td{border: 1px solid #ccc;border-collapse: collapse;}table,fie ...

  3. 使用EasyUI实现修改删除功能

    目录 前言: 这次的功能是基于上一次的项目做的,如果有不懂的可以看上一节使用EasyUI实现增加功能 一:前台开发 二:后台开发 三:效果图 距离使用EasyUI完成整个后台.书本管理项目只剩这最后一 ...

  4. 用Python做一个控制台程序实现图书管理器的简单功能,例如添加图书、查询库里的图书、删除图书、修改书籍信息、显示书籍信息,或者是借阅/归还...

    为了实现图书管理器的功能,需要考虑如下几点: 需要定义一个图书类,包含书名.作者.出版社.借阅状态.借阅人等属性,可以使用类的构造函数来初始化这些属性. 需要定义一个图书管理器类,包含一个用于存储图书 ...

  5. JavaWeb学习-案例练习-图书管理后台-5- 完成图书删除功能

    继续来做案例练习,本篇学习如何删除图书,也就是在list.jsp页面的图书列表中,点击删除按钮,这条图书记录信息就从列表消失,然后相当于刷新当前页面,列表就少了一条图书记录. 1.需求场景 例如把Py ...

  6. 基于IO流读取的 完成 用户登录,注册,修改,查看所有用户,删除功能

    Controller import java.util.Scanner;/*** 视图层* 完成用户登录,注册,修改,删除功能*/ public class Controller {/*** 字符输入 ...

  7. JdbcTemplate(操作数据库-修改和删除功能)

    目录 JdbcTemplate(操作数据库-删除功能) 1.创建数据库 2.配置文件实现 3.创建实体类 4.创建dao层 5.创建service层 6.测试类 7.测试结果: JdbcTemplat ...

  8. Spring5框架基础详解(五)(JdbcTemplate概念和准备、jdbcTemplate操作数据库添加功能、修改和删除功能、查询功能)

    文章目录 一.JdbcTemplate是什么和准备工作 1.1.引入相关maven依赖 1.2在spring配置文件配置数据库连接 1.3配置JdbcTemplate对象,注入DateSource 1 ...

  9. 纯前端vue+bootstrap实现图书管理系统的添加、删除功能

    1.纯前端vue+bootstrap实现图书管理系统的添加.删除功能最终效果界面 2.添加效果 3.删除效果 4.前端代码:图书管理系统.html <!DOCTYPE html> < ...

最新文章

  1. h5页面提示只能在微信浏览器中打开_电子问卷h5怎么做?
  2. 收集一些常用的正则表达式
  3. AD-批量启用账户命令 Enable-adaccount
  4. Flash/Flex学习笔记(26):AS3自定义右键菜单
  5. Bailian3470 整理扑克牌【贪心+二分】
  6. opencv图像分析与处理(13)- 彩色图像处理基础:彩色模型与伪彩色图像处理
  7. 1月16日学习内容整理:存储库MongoDB之pymongo模块
  8. 谁来帮帮只想救人的医生呢? | 凌云时刻
  9. 【Java开发】Java实现黑客帝国代码雨
  10. 《大慈恩寺三藏法师传》简介
  11. 公众平台 php,微信公众平台PHP开发
  12. java项目如何做成可以在没有jdk环境的电脑上面运行的exe程序
  13. LearnOpenGL学习笔记—PBR:IBL
  14. QT5.12.0警告 zero as null pointer constant
  15. 江南Style之---西塘
  16. JMeter逻辑控制器 详解
  17. AcWing 204. 表达整数的奇怪方式
  18. Nginx输出header到access日志文件
  19. 不一样得Device /dev/sdb1 excluded by a filter.
  20. 文化课2021-2022游记

热门文章

  1. DayDayUp:昨天用微信发朋友圈—发现微信出现一点点Bug记录
  2. ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值
  3. Algorithm:C++语言实现之链表相关算法(链表相加、链表的部分翻转、链表划分、链表去重、重复元素全部删除)
  4. Py之pyecharts:python包之数据可视化包pyecharts简介、安装、使用方法之详细攻略
  5. 人工智能的时代?未来已至?
  6. vm无法删除干净老版本,新版本无法安装解决
  7. git错误fatal: remote origin already exists.
  8. [转] CSS 颜色名
  9. 为什么要实现序列化接口
  10. 用jquery ajax做的select菜单,选中的效果