Java项目开发实例图书信息管理系统开发及源码

合集下载

基于java的图书管理系统源代码

基于java的图书管理系统源代码

声明:本系统是基于C/S的图书管理系统,主要使用的是Oracle数据库,下面附所有实现代码package library;public class book_add extends JFrame implements ActionListener{DataBaseManager db=new DataBaseManager();ResultSet rs;JPanel panel1,panel2;JLabel book_id_label,book_name_label,author_label,press_label,press_date_label,price_label,book_num_label,borrowed_num_label,address;JTextField book_id_TextField,book_name_TextField,author_TextField,press_TextField,press_date_TextField,price_TextField,book_num_TextField,borrowed_count;JComboBox addresst;Container c;JButton clear,add,exit;public book_add(){super("添加图书信息");c=getContentPane();c.setLayout(new BorderLayout());book_id_label=new JLabel("编号",JLabel.CENTER);book_name_label=new JLabel("名称",JLabel.CENTER);author_label=new JLabel("作者",JLabel.CENTER);press_label=new JLabel("出版社",JLabel.CENTER);press_date_label=new JLabel("出版日期",JLabel.CENTER);price_label=new JLabel("价格",JLabel.CENTER);book_num_label=new JLabel("库存数",JLabel.CENTER);borrowed_num_label=new JLabel("已借阅数",JLabel.CENTER);address=new JLabel("藏书地址",JLabel.CENTER);book_id_TextField=new JTextField(15);book_name_TextField=new JTextField(15);author_TextField=new JTextField(15);press_TextField=new JTextField(15);press_date_TextField=new JTextField(15);price_TextField=new JTextField(15);book_num_TextField=new JTextField(15);borrowed_count=new JTextField(15);borrowed_count.setText("0");addresst=new JComboBox();addresst.addItem("扬子津图书馆");addresst.addItem("荷花池图书馆");addresst.addItem("瘦西湖图书馆");addresst.addItem("淮海路图书馆");panel1=new JPanel();panel1.setLayout(new GridLayout(9,2));panel1.add(book_id_label);panel1.add(book_id_TextField);panel1.add(book_name_label);panel1.add(book_name_TextField);panel1.add(press_label);panel1.add(press_TextField);panel1.add(author_label);panel1.add(author_TextField);panel1.add(press_date_label);panel1.add(press_date_TextField);panel1.add(price_label);panel1.add(price_TextField);panel1.add(book_num_label);panel1.add(book_num_TextField);panel1.add(borrowed_num_label);panel1.add(borrowed_count);panel1.add(address);panel1.add(addresst);panel2=new JPanel();panel2.setLayout(new GridLayout(1,3));clear=new JButton("清空");clear.addActionListener(this);add=new JButton("添加");add.addActionListener(this);exit=new JButton("退出");exit.addActionListener(this);panel2.add(clear);panel2.add(add);panel2.add(exit);c.add(panel1,BorderLayout.CENTER);c.add(panel2,BorderLayout.SOUTH);setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getSource()==exit){this.dispose();}else if(e.getSource()==clear){book_id_TextField.setText("");book_name_TextField.setText("");author_TextField.setText("");press_TextField.setText("");press_date_TextField.setText("");price_TextField.setText("");book_num_TextField.setText("");}else if(e.getSource()==add){if(book_id_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "书号不能为空");}else if(book_name_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "书名不能为空");}else if(author_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "作者不能为空");}else if(press_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "出版社不能为空");}else if(press_date_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "出版日期不能为空");}else if(price_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "价格不能为空");}else if(book_num_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "库存不能为空");}else if(borrowed_count.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "借阅数不能为空");}else {try{String strSQL="insert into book(book_id,book_name,press,author,press_date,price,book_count,borrowed_count,store_addres s) values('"+book_id_TextField.getText().trim()+"','"+book_name_TextField.getText().trim()+"','"+press_TextField.getText().trim()+"','"+author_TextField.getText().trim()+"','"+press_date_TextField.getText().trim()+"','"+price_TextField.getText().trim()+"','"+book_num_TextField.getText().trim()+"','"+borrowed_count.getText().trim()+"','"+addresst.getSelectedItem()+"')";if(db.updateSql(strSQL)){this.dispose();JOptionPane.showMessageDialog(null,"添加图书成功");}else{JOptionPane.showMessageDialog(null,"添加图书失败");this.dispose();}db.closeConnection();}catch(Exception ex){}}}}}package library;import javax.swing.*;import java.awt.*;public class book_delete extends JFrame implements ActionListener{DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JLabel TipLabel=new JLabel("请选择要删除的书名",JLabel.CENTER);JComboBox bb=new JComboBox();JButton yes,exit;JPanel panel1=new JPanel();public book_delete(){super("删除图书信息");c=getContentPane();c.setLayout(new BorderLayout());try{String strSQL="select book_name from book where book_count>borrowed_count";rs=db.getResult(strSQL);while(rs.next()){bb.addItem(rs.getString(1));}}catch(SQLException sqle){}catch(Exception ex){}c.add(TipLabel,BorderLayout.NORTH);c.add(bb,BorderLayout.CENTER);yes=new JButton("确定");exit=new JButton("退出");yes.addActionListener(this);exit.addActionListener(this);panel1.add(yes);panel1.add(exit);c.add(panel1,BorderLayout.SOUTH);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==exit){this.dispose();}else if(e.getSource()==yes){try{String strSQL="select borrowed_count from book where book_name='"+bb.getSelectedItem()+"'";rs=db.getResult(strSQL);if(!rs.first()){JOptionPane.showMessageDialog(null,"书库里没有你要删除的书");}else{String strSql="delete from book where book_name='"+bb.getSelectedItem()+"'and borrowed_count=0";rs.first();int count=rs.getInt(1);if(!(count==0)){JOptionPane.showMessageDialog(null,"此书还有学生没有还,不可删除");}else if(db.updateSql(strSql)){JOptionPane.showMessageDialog(null,"删除成功");db.closeConnection();this.dispose();}else{JOptionPane.showMessageDialog(null,"删除失败");db.closeConnection();this.dispose();}}}catch(SQLException sqle){}catch(Exception ex){}}}}package library;public class book_modify extends JFrame implements ActionListener{DataBaseManager db=new DataBaseManager();ResultSet rs;JPanel panel1,panel2,panel3;JLabel TipLabel=new JLabel("输入书名点确定,将调出此书的相关信息");JLabel book_name_label,author_label,press_label,press_date_label,price_label;JTextField book_name_TextField,author_TextField,press_TextField,press_date_TextField,price_TextField;Container c;JButton clear,yes,update,exit;public book_modify(){super("修改图书信息");c=getContentPane();c.setLayout(new BorderLayout());panel3=new JPanel();panel3.add(TipLabel);c.add(panel3,BorderLayout.NORTH);book_name_label=new JLabel("名称",JLabel.CENTER);author_label=new JLabel("作者",JLabel.CENTER);press_label=new JLabel("出版社",JLabel.CENTER);press_date_label=new JLabel("出版日期",JLabel.CENTER);price_label=new JLabel("价格",JLabel.CENTER);book_name_TextField=new JTextField(15);author_TextField=new JTextField(15);press_TextField=new JTextField(15);press_date_TextField=new JTextField(15);price_TextField=new JTextField(15);panel1=new JPanel();panel1.setLayout(new GridLayout(6,2));panel1.add(book_name_label);panel1.add(book_name_TextField);panel1.add(author_label);panel1.add(author_TextField);panel1.add(press_label);panel1.add(press_TextField);panel1.add(press_date_label);panel1.add(press_date_TextField);panel1.add(price_label);panel1.add(price_TextField);panel2=new JPanel();panel2.setLayout(new GridLayout(1,4));clear=new JButton("清空");yes=new JButton("确定");update=new JButton("更新");exit=new JButton("退出");panel2.add(clear);panel2.add(yes);panel2.add(update);panel2.add(exit);clear.addActionListener(this);yes.addActionListener(this);update.addActionListener(this);exit.addActionListener(this);update.setEnabled(false);c.add(panel1,BorderLayout.CENTER);c.add(panel2,BorderLayout.SOUTH);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==exit){this.dispose();;}else if(e.getSource()==clear){book_name_TextField.setText("");author_TextField.setText("");press_TextField.setText("");press_date_TextField.setText("");price_TextField.setText("");}else if(e.getSource()==yes){try{String strSQL="select * from book where book_name='"+book_name_TextField.getText().trim()+"'";rs=db.getResult(strSQL);while(rs.next()){book_name_TextField.setText(rs.getString("book_name"));author_TextField.setText(rs.getString("author"));press_TextField.setText(rs.getString("press"));press_date_TextField.setText(rs.getString("press_date"));price_TextField.setText(rs.getString("price"));}update.setEnabled(true);}catch(NullPointerException upe){}catch(Exception es){}}else if(e.getSource()==update){try{String strSQL="update book set book_name='"+book_name_TextField.getText().trim()+"',press='"+press_TextField.getText().trim()+"',author='"+author_TextField.getText().trim()+"',press_date='"+press_date_TextField.getText().trim()+"',price='"+price_TextField.getText().trim()+"' where book_name='"+book_name_TextField.getText().trim()+"'";if(db.updateSql(strSQL)){this.dispose();JOptionPane.showMessageDialog(null,"更新图书成功");}else {JOptionPane.showMessageDialog(null,"更新图书失败");}db.closeConnection();}catch(Exception sqle){}}}}package library;public class bookborrow extends JFrame implements ActionListener{DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JPanel panel1,panel2;JLabel borrowname,bookname,borrowdate,returndate,is_return_label;JTextField borrowdateField,returndateField,is_return;JButton clear,yes,cancel;JComboBox borrownameBox=new JComboBox();JComboBox booknameBox=new JComboBox();public bookborrow(){super("书籍出借");c=getContentPane();c.setLayout(new BorderLayout());Calendar cal = Calendar.getInstance();int year,month,day;// year=cal.get(Calendar.YEAR);// month=cal.get(Calendar.MONTH)+3;//从0开始的// day=cal.get(Calendar.DAY_OF_MONTH);// String cdate = sdf.format(cal.getTime());// String da=Integer.toString(year)+"-0"+Integer.toString(month)+"-"+Integer.toString(day);borrowname=new JLabel("借阅者姓名",JLabel.CENTER);bookname=new JLabel("书名",JLabel.CENTER);borrowdate=new JLabel("借书日期",JLabel.CENTER);// returndate=new JLabel("应还日期",JLabel.CENTER);is_return_label=new JLabel("是否归还",JLabel.CENTER);borrowdateField=new JTextField(15);// borrowdateField.setText(cdate);// returndateField=new JTextField(15);// returndateField.setText(da);is_return=new JTextField(15);is_return.setText("否");try{String strSql="select student_name from reader ";rs=db.getResult(strSql);while(rs.next()){borrownameBox.addItem(rs.getString(1));}}catch(SQLException sqle){}catch(Exception ex){}try{String strSQL="select book_name from book where book_count>borrowed_count";rs=db.getResult(strSQL);while(rs.next()){booknameBox.addItem(rs.getString(1));}}catch(SQLException sqle){}catch(Exception ex){}panel1=new JPanel();panel1.setLayout(new GridLayout(5,2));panel1.add(borrowname);panel1.add(borrownameBox);panel1.add(bookname);panel1.add(booknameBox);panel1.add(borrowdate);panel1.add(borrowdateField);// panel1.add(returndate);// panel1.add(returndateField);panel1.add(is_return_label);panel1.add(is_return);c.add(panel1,BorderLayout.CENTER);panel2=new JPanel();panel2.setLayout(new GridLayout(1,3));clear=new JButton("清空");yes=new JButton("确定");cancel=new JButton("取消");clear.addActionListener(this);yes.addActionListener(this);cancel.addActionListener(this);panel2.add(clear);panel2.add(yes);panel2.add(cancel);c.add(panel2,BorderLayout.SOUTH);setVisible(true);setSize(300,300);}public void actionPerformed(ActionEvent e){if(e.getSource()==cancel){this.dispose();}else if(e.getSource()==clear){borrowdateField.setText("");// returndateField.setText("");is_return.setText("");}else if(e.getSource()==yes){if(borrownameBox.getSelectedItem().equals("")){JOptionPane.showMessageDialog(null, "对不起,没有读者借阅");}else if(booknameBox.getSelectedItem().equals("")){JOptionPane.showMessageDialog(null, "对不起,现在书库没有书");}else {try{//系统计算归还日期//获取输入的借阅日期,自动加两个月String startDate=borrowdateField.getText().trim();SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");Date dateStart=format.parse(startDate);Calendar cd=Calendar.getInstance();cd.setTime(dateStart);cd.add(Calendar.MONTH, 2);String returnDate=format.format(cd.getTime());String strSQL="insert into borrow(student_name,book_name,borrow_date,return_date,is_returned) values('"+borrownameBox.getSelectedItem()+"','"+booknameBox.getSelectedItem()+"','"+borrowdateField.getText().trim()+"','"+returnDate+"','"+is_return.getText().trim()+"')";if(db.updateSql(strSQL)){JOptionPane.showMessageDialog(null, "借阅完成");strSQL = "update reader set borrow_count=borrow_count+1 where student_name='"+borrownameBox.getSelectedItem()+"'";db.updateSql(strSQL);strSQL="update book set borrowed_count=borrowed_count+1 where book_name='"+booknameBox.getSelectedItem()+"'";db.updateSql(strSQL);db.closeConnection();this.dispose();}else{JOptionPane.showMessageDialog(null, "借阅失败");db.closeConnection();this.dispose();}}catch(Exception se){}}}}}package library;import javax.swing.*;import java.awt.*;public class bookborrowlist extends JFrame implements ActionListener{DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JPanel panel1,panel2;JLabel bookname,studentname;JTextField booknamet,studentnamet;JButton search,exit;JTable table=null;DefaultTableModel defaultModel=null;public bookborrowlist(){super("借阅列表");c=getContentPane();c.setLayout(new BorderLayout());bookname=new JLabel("书名",JLabel.CENTER);studentname=new JLabel("人名",JLabel.CENTER);booknamet=new JTextField(15);studentnamet=new JTextField(15);search=new JButton("查询");exit=new JButton("退出");search.addActionListener(this);exit.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(studentname);box1.add(studentnamet);box1.add(search);Box box2=Box.createHorizontalBox();box2.add(bookname);box2.add(booknamet);box2.add(exit);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(Box.createVerticalGlue());panel1=new JPanel();panel1.add(boxH);panel2=new JPanel();String []name={"读者","书名","借阅时间","应还时间","是否归还"};String [][]data=new String[0][0];defaultModel=new DefaultTableModel(data,name);table=new JTable(defaultModel);table.setPreferredScrollableViewportSize(new Dimension(400,80));JScrollPane s=new JScrollPane(table);panel2.add(s);c.add(panel1,BorderLayout.NORTH);c.add(panel2,BorderLayout.SOUTH);}public void actionPerformed(ActionEvent e){if(e.getSource()==exit){db.closeConnection();this.dispose();}else if(e.getSource()==search){String strSQL="select student_name,book_name,borrow_date,return_date,is_returned from borrow";String strSql=null;if(studentnamet.getText().trim().equals("")&&booknamet.getText().trim().equals("")){strSql=strSQL;}else if(studentnamet.getText().trim().equals("")){strSql="select student_name,book_name,borrow_date,return_date,is_returned from borrow where book_name='"+booknamet.getText().trim()+"'";}else if(booknamet.getText().trim().equals("")){strSql="select student_name,book_name,borrow_date,return_date,is_returned from borrow where student_name='"+studentnamet.getText().trim()+"'";}else{strSql="select student_name,book_name,borrow_date,return_date,is_returned from borrow where student_name='"+studentnamet.getText().trim()+"'and book_name='"+booknamet.getText().trim()+"'";JOptionPane.showMessageDialog(null, "你借的书还还有7天超期");}try{int rowCount=defaultModel.getRowCount()-1;int j=rowCount;for(int i=0;i<=rowCount;i++){defaultModel.removeRow(j);defaultModel.setRowCount(j);j=j-1;}rs=db.getResult(strSql);while(rs.next()){Vector insertRow=new Vector();insertRow.addElement(rs.getString(1));insertRow.addElement(rs.getString(2));insertRow.addElement(rs.getString(3));insertRow.addElement(rs.getString(4));insertRow.addElement(rs.getString(5));defaultModel.addRow(insertRow);}table.revalidate();}catch(SQLException sqle){}catch(Exception ex){}}}}package library;import javax.swing.*;import java.awt.*;public class bookborrowModify extends JFrame implements ActionListener{DataBaseManager db=new DataBaseManager();ResultSet rs;JPanel panel1,panel2,panel3;Container c;JLabel tiplabel=new JLabel("输入借阅者姓名和书名单击确定,将调出此书的相关信息");JLabel borrowlabel,namelabel,borrowdate;JTextField borrowField,nameField,dateField;JButton clear,yes,update,cancel;public bookborrowModify(){super("修改图书出借信息");c=getContentPane();c.setLayout(new BorderLayout());panel3=new JPanel();panel3.add(tiplabel);c.add(panel3,BorderLayout.NORTH);borrowlabel=new JLabel("借阅者姓名",JLabel.CENTER);namelabel=new JLabel("书名",JLabel.CENTER);borrowdate=new JLabel("借书日期",JLabel.CENTER);borrowField=new JTextField(15);nameField=new JTextField(15);dateField=new JTextField(15);panel1=new JPanel();panel1.setLayout(new GridLayout(3,2));panel1.add(borrowlabel);panel1.add(borrowField);panel1.add(namelabel);panel1.add(nameField);panel1.add(borrowdate);panel1.add(dateField);c.add(panel1,BorderLayout.CENTER);panel2=new JPanel();panel2.setLayout(new GridLayout(1,4));clear=new JButton("清空");yes=new JButton("确定");update=new JButton("更新");cancel=new JButton("取消");clear.addActionListener(this);yes.addActionListener(this);update.addActionListener(this);cancel.addActionListener(this);panel2.add(clear);panel2.add(yes);panel2.add(update);panel2.add(cancel);c.add(panel2,BorderLayout.SOUTH);setVisible(true);setSize(400,200);}public void actionPerformed(ActionEvent e){if(e.getSource()==clear){borrowField.setText("");nameField.setText("");dateField.setText("");}else if(e.getSource()==cancel){this.dispose();}else if(e.getSource()==yes){try{String strSQL="select student_name,book_name,borrow_date from borrow where student_name='"+borrowField.getText().trim()+"'and book_name='"+nameField.getText().trim()+"'";rs=db.getResult(strSQL);if(!rs.first()){JOptionPane.showMessageDialog(null,"此学生没有借过书或者没有此书");}else{borrowField.setText(rs.getString(1));nameField.setText(rs.getString(2));dateField.setText(rs.getString(3));update.setEnabled(true);}}catch(Exception ex){}}else if(e.getSource()==update){String strSQL="update borrow set borrow_date='"+dateField.getText().trim()+"' where student_name='"+borrowField.getText().trim()+"'and book_name='"+nameField.getText().trim()+"'";if(db.updateSql(strSQL)){JOptionPane.showMessageDialog(null,"更新成功");db.closeConnection();this.dispose();}else{JOptionPane.showMessageDialog(null,"更新失败");db.closeConnection();this.dispose();}}}}package library;import javax.swing.*;import java.awt.*;public class booklist extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JPanel panel1,panel2,panel3;JLabel bookname,authorname,press;JTextField booknamet,authornamet,presst;JButton search,exit;JTable table=null;DefaultTableModel defaultModel=null;public booklist(){super("书籍信息查询");c=getContentPane();c.setLayout(new BorderLayout());bookname=new JLabel("书名",JLabel.CENTER);authorname=new JLabel("作者",JLabel.CENTER);press=new JLabel("出版社",JLabel.CENTER);booknamet=new JTextField(15);authornamet=new JTextField(15);presst=new JTextField(15);search=new JButton("查询");exit=new JButton("退出");search.addActionListener(this);exit.addActionListener(this);panel1=new JPanel();panel1.add(bookname);panel1.add(booknamet);panel1.add(authorname);panel1.add(authornamet);panel2=new JPanel();panel2.add(press);panel2.add(presst);panel2.add(search);panel2.add(exit);String []name={"书号","书名","出版社","作者","出版日期","价格","图书数目","已借数目","剩余数目","藏书地址"};String [][]data=new String[0][0];defaultModel=new DefaultTableModel(data,name);table=new JTable(defaultModel);table.setPreferredScrollableViewportSize(new Dimension(400,80));JScrollPane s=new JScrollPane(table);panel3=new JPanel();panel3.add(s);c.add(panel1,BorderLayout.NORTH);c.add(panel2,BorderLayout.CENTER);c.add(panel3,BorderLayout.SOUTH);}public void actionPerformed(ActionEvent e){if(e.getSource()==exit){db.closeConnection();this.dispose();}else if(e.getSource()==search){String strSQL="select book_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_count-borro wed_count,store_address from book";String strSql=null;if(booknamet.getText().trim().equals("")&&authornamet.getText().trim().equals("")&&presst. getText().trim().equals("")){strSql=strSQL;}elseif(booknamet.getText().trim().equals("")&&authornamet.getText().trim().equals("")){strSql="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_count-borro wed_count,store_address from book where press='"+presst.getText().trim()+"'";}else if(authornamet.getText().trim().equals("")&&presst.getText().trim().equals("")){strSql="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_count-borro wed_count,store_address from book where book_name='"+booknamet.getText().trim()+"'";}else if(booknamet.getText().trim().equals("")&&presst.getText().trim().equals("")){strSql="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_count-borro wed_count,store_address from book where author='"+authornamet.getText().trim()+"'";}else{strSql="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_count-borro wed_count,store_address from book where book_name='"+booknamet.getText().trim()+"'and author='"+authornamet.getText().trim()+"'and press='"+presst.getText().trim()+"'";}try{int rowCount=defaultModel.getRowCount()-1;int j=rowCount;for(int i=0;i<=rowCount;i++){defaultModel.removeRow(j);defaultModel.setRowCount(j);j=j-1;}rs=db.getResult(strSql);while(rs.next()){Vector insertRow=new Vector();insertRow.addElement(rs.getString(1));insertRow.addElement(rs.getString(2));insertRow.addElement(rs.getString(3));insertRow.addElement(rs.getString(4));insertRow.addElement(rs.getString(5));insertRow.addElement(rs.getString(6));insertRow.addElement(rs.getString(7));insertRow.addElement(rs.getString(8));insertRow.addElement(rs.getString(9));insertRow.addElement(rs.getString(10));defaultModel.addRow(insertRow);}table.revalidate();}catch(SQLException sqle){}catch(Exception ex){}}}}package library;import javax.swing.*;import java.awt.*;public class bookreturn extends JFrame implements ActionListener{DataBaseManager db=new DataBaseManager();ResultSet rs;JPanel panel1,panel2;Container c;JLabel namelabel,booklabel,returndatelabel;JTextField returnField;JButton clear,yes,cancel;JComboBox bookname=new JComboBox();JComboBox readername=new JComboBox();public bookreturn(){super("图书还入");c=getContentPane();c.setLayout(new BorderLayout());Calendar cal = Calendar.getInstance();String cdate = sdf.format(cal.getTime());namelabel=new JLabel("还书者姓名",JLabel.CENTER);booklabel =new JLabel("书名",JLabel.CENTER);returndatelabel=new JLabel("日期",JLabel.CENTER);returnField=new JTextField(15);returnField.setText(cdate);try{String s="";String strSQL="select student_name from reader where borrow_count!=0";rs=db.getResult(strSQL);while(rs.next()){readername.addItem(rs.getString(1));}}catch(SQLException sqle){}catch(Exception ex){}。

Java图书管理系统附源码

Java图书管理系统附源码

Java图书管理系统附源码随着信息化的快速发展,图书馆已成为人们获取知识的重要场所。

为了提高图书馆的管理效率,本文介绍了一个基于Java语言的图书管理系统,并附带了完整的源代码。

该图书管理系统主要包括图书管理、读者管理、借阅管理、系统管理等模块。

系统采用B/S架构,以Java语言开发,运行在Windows平台上。

该系统具有操作简单、界面友好、维护方便等特点。

图书管理模块:实现图书的入库、修改、删除、查询等功能。

图书信息包括书名、作者、社、时间等。

读者管理模块:实现读者的入库、修改、删除、查询等功能。

读者信息包括姓名、性别、出生日期、方式等。

借阅管理模块:实现图书的借阅、归还、续借等功能。

借阅信息包括借书证号、书名、借阅时间、归还时间等。

系统管理模块:实现用户管理、权限管理等。

用户信息包括用户名、密码、角色等。

登录:用户输入用户名和密码,系统验证通过后进入主界面。

添加图书:管理员可以添加图书信息,包括书名、作者、社等。

添加读者:管理员可以添加读者信息,包括姓名、性别、方式等。

借阅图书:读者可以查询图书信息,并申请借阅。

管理员可以审核借阅申请,并决定是否同意。

归还图书:读者可以归还图书,管理员可以查询归还情况。

统计报表:系统可以生成各种报表,如图书借阅排行榜、读者借阅排行榜等。

由于篇幅限制,这里只提供部分源代码,完整源代码请参考附件。

随着信息技术的快速发展,图书馆作为信息和知识的聚集地,其传统的管理方式已经无法满足读者的需求。

为了提高图书管理效率,本文旨在研究基于Java的图书管理系统。

图书管理系统是图书馆的重要组成部分,它可以帮助图书馆工作人员和读者更加方便地管理图书资源。

传统的图书管理系统往往采用人工方式进行管理,这种方式不仅效率低下,而且容易出错。

因此,研究一种基于Java的图书管理系统势在必行。

基于Java的图书管理系统采用B/S架构,即浏览器与服务器之间的架构。

该架构将系统的业务逻辑和数据存储交由服务器处理,客户端通过浏览器访问系统。

(完整word版)图书管理系统源代码

(完整word版)图书管理系统源代码

图书管理系统源代码(一)程序代码1。

主窗口界面import java.awt。

*;import java.awt。

event.*;import javax。

swing.*;import javax.swing.border.TitledBorder;import java.awt。

Font;import javax.swing。

JMenu;public class MainWindow extends JFrame implements ActionListener { private static final long serialVersionUID = 1L;static String loginName;static String loginNo;JLabel mlabel;JPanel jp=new JPanel();//建立菜单栏JMenu a=new JMenu();JMenu b=new JMenu();JMenu c=new JMenu();//建立系统管理菜单组JMenuItem aa=new JMenuItem();JMenuItem ab=new JMenuItem();JMenuItem ac=new JMenuItem();//建立读者管理菜单组JMenuItem bb=new JMenuItem();//建立书籍管理菜单组JMenuItem ca=new JMenuItem();JMenuItem cb=new JMenuItem();JMenuItem cc=new JMenuItem();JMenuItem cd=new JMenuItem();public MainWindow(){super(”图书管理系统");addWindowListener(new WindowAdapter(){System.exit(0);}});Container d=getContentPane();this。

基于java的图书管理系统源代码

基于java的图书管理系统源代码

声明:本系统是基于C/S的图书管理系统,主要使用的是Oracle数据库,下面附所有实现代码package library;public class book_add extends JFrame implements ActionListener{DataBaseManager db=new DataBaseManager();ResultSet rs;JPanel panel1,panel2;JLabel book_id_label,book_name_label,author_label,press_label,press_date_label,price_label,book_num_label,borrowed_num_label, address;JTextField book_id_TextField,book_name_TextField,author_TextField,press_TextField,press_date_TextField,price_TextField,book_num_TextField,borrowed_count;JComboBox addresst;Container c;JButton clear,add,exit;public book_add(){super("添加图书信息");c=getContentPane();c.setLayout(new BorderLayout());book_id_label=new JLabel("编号",JLabel.CENTER);book_name_label=new JLabel("名称",JLabel.CENTER);author_label=new JLabel("作者",JLabel.CENTER);press_label=new JLabel("出版社",JLabel.CENTER);press_date_label=new JLabel("出版日期",JLabel.CENTER);price_label=new JLabel("价格",JLabel.CENTER);book_num_label=new JLabel("库存数",JLabel.CENTER);borrowed_num_label=new JLabel("已借阅数",JLabel.CENTER);address=new JLabel("藏书地址",JLabel.CENTER);book_id_TextField=new JTextField(15);book_name_TextField=new JTextField(15);author_TextField=new JTextField(15);press_TextField=new JTextField(15);press_date_TextField=new JTextField(15);price_TextField=new JTextField(15);book_num_TextField=new JTextField(15);borrowed_count=new JTextField(15);borrowed_count.setText("0");addresst=new JComboBox();addresst.addItem("扬子津图书馆");addresst.addItem("荷花池图书馆");addresst.addItem("瘦西湖图书馆");addresst.addItem("淮海路图书馆");panel1=new JPanel();panel1.setLayout(new GridLayout(9,2));panel1.add(book_id_label);panel1.add(book_id_TextField);panel1.add(book_name_label);panel1.add(book_name_TextField);panel1.add(press_label);panel1.add(press_TextField);panel1.add(author_label);panel1.add(author_TextField);panel1.add(press_date_label);panel1.add(press_date_TextField);panel1.add(price_label);panel1.add(price_TextField);panel1.add(book_num_label);panel1.add(book_num_TextField);panel1.add(borrowed_num_label);panel1.add(borrowed_count);panel1.add(address);panel1.add(addresst);panel2=new JPanel();panel2.setLayout(new GridLayout(1,3));clear=new JButton("清空");clear.addActionListener(this);add=new JButton("添加");add.addActionListener(this);exit=new JButton("退出");exit.addActionListener(this);panel2.add(clear);panel2.add(add);panel2.add(exit);c.add(panel1,BorderLayout.CENTER);c.add(panel2,BorderLayout.SOUTH);setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getSource()==exit){this.dispose();}else if(e.getSource()==clear){book_id_TextField.setText("");book_name_TextField.setText("");author_TextField.setText("");press_TextField.setText("");press_date_TextField.setText("");price_TextField.setText("");book_num_TextField.setText("");}else if(e.getSource()==add){if(book_id_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "书号不能为空");}else if(book_name_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "书名不能为空");}else if(author_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "作者不能为空");}else if(press_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "出版社不能为空");}else if(press_date_TextField.getText().trim().equals("")) {JOptionPane.showMessageDialog(null, "出版日期不能为空");}else if(price_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "价格不能为空");}else if(book_num_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "库存不能为空");}else if(borrowed_count.getText().trim().equals("")){JOptionPane.showMessageDialog(null, "借阅数不能为空");}else {try{String strSQL="insert into book(book_id,book_name,press,author,press_date,price,book_count,borrowed_count, store_address) values('"+book_id_TextField.getText().trim()+"','"+book_name_TextField.getText().trim()+"','"+press_TextField.getText().trim()+"','"+author_TextField.getText().trim()+"','"+press_date_TextField.getText().trim()+"','"+price_TextField.getText().trim()+"','"+book_num_TextField.getText().trim()+"','"+borrowed_count.getText().trim()+"','"+addresst.getSelectedItem()+"')";if(db.updateSql(strSQL)){this.dispose();JOptionPane.showMessageDialog(null,"添加图书成功");}else{JOptionPane.showMessageDialog(null,"添加图书失败");this.dispose();}db.closeConnection();}catch(Exception ex){}}}}}package library;import javax.swing.*;import java.awt.*;public class book_delete extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JLabel TipLabel=new JLabel("请选择要删除的书名",JLabel.CENTER);JComboBox bb=new JComboBox();JButton yes,exit;JPanel panel1=new JPanel();public book_delete(){super("删除图书信息");c=getContentPane();c.setLayout(new BorderLayout());try{String strSQL="select book_name from book where book_count>borrowed_count";rs=db.getResult(strSQL);while(rs.next()){bb.addItem(rs.getString(1));}}catch(SQLException sqle){}catch(Exception ex){}c.add(TipLabel,BorderLayout.NORTH);c.add(bb,BorderLayout.CENTER);yes=new JButton("确定");exit=new JButton("退出");yes.addActionListener(this);exit.addActionListener(this);panel1.add(yes);panel1.add(exit);c.add(panel1,BorderLayout.SOUTH);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==exit){this.dispose();}else if(e.getSource()==yes){try{String strSQL="select borrowed_count from book where book_name='"+bb.getSelectedItem()+"'";rs=db.getResult(strSQL);if(!rs.first()){JOptionPane.showMessageDialog(null,"书库里没有你要删除的书");}else{String strSql="delete from book where book_name='"+bb.getSelectedItem()+"'and borrowed_count=0";rs.first();int count=rs.getInt(1);if(!(count==0)){JOptionPane.showMessageDialog(null,"此书还有学生没有还,不可删除");}else if(db.updateSql(strSql)){JOptionPane.showMessageDialog(null,"删除成功");db.closeConnection();this.dispose();}else{JOptionPane.showMessageDialog(null,"删除失败");db.closeConnection();this.dispose();}}}catch(SQLException sqle){}catch(Exception ex){}}}}package library;public class book_modify extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;JPanel panel1,panel2,panel3;JLabel TipLabel=new JLabel("输入书名点确定,将调出此书的相关信息");JLabel book_name_label,author_label,press_label,press_date_label,price_label;JTextField book_name_TextField,author_TextField,press_TextField,press_date_TextField,price_TextField; Container c;JButton clear,yes,update,exit;public book_modify(){super("修改图书信息");c=getContentPane();c.setLayout(new BorderLayout());panel3=new JPanel();panel3.add(TipLabel);c.add(panel3,BorderLayout.NORTH);book_name_label=new JLabel("名称",JLabel.CENTER);author_label=new JLabel("作者",JLabel.CENTER);press_label=new JLabel("出版社",JLabel.CENTER);press_date_label=new JLabel("出版日期",JLabel.CENTER);price_label=new JLabel("价格",JLabel.CENTER);book_name_TextField=new JTextField(15);author_TextField=new JTextField(15);press_TextField=new JTextField(15);press_date_TextField=new JTextField(15);price_TextField=new JTextField(15);panel1=new JPanel();panel1.setLayout(new GridLayout(6,2));panel1.add(book_name_label);panel1.add(book_name_TextField);panel1.add(author_label);panel1.add(author_TextField);panel1.add(press_label);panel1.add(press_TextField);panel1.add(press_date_label);panel1.add(press_date_TextField);panel1.add(price_label);panel1.add(price_TextField);panel2=new JPanel();panel2.setLayout(new GridLayout(1,4));clear=new JButton("清空");yes=new JButton("确定");update=new JButton("更新");exit=new JButton("退出");panel2.add(clear);panel2.add(yes);panel2.add(update);panel2.add(exit);clear.addActionListener(this);yes.addActionListener(this);update.addActionListener(this);exit.addActionListener(this);update.setEnabled(false);c.add(panel1,BorderLayout.CENTER);c.add(panel2,BorderLayout.SOUTH);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==exit){this.dispose();;}else if(e.getSource()==clear){book_name_TextField.setText("");author_TextField.setText("");press_TextField.setText("");press_date_TextField.setText("");price_TextField.setText("");}else if(e.getSource()==yes){try{String strSQL="select * from book where book_name='"+book_name_TextField.getText().trim()+"'";rs=db.getResult(strSQL);while(rs.next()){book_name_TextField.setText(rs.getString("book_name"));author_TextField.setText(rs.getString("author"));press_TextField.setText(rs.getString("press"));press_date_TextField.setText(rs.getString("press_date"));price_TextField.setText(rs.getString("price"));}update.setEnabled(true);}catch(NullPointerException upe){}catch(Exception es){}}else if(e.getSource()==update){try{String strSQL="update book set book_name='"+book_name_TextField.getText().trim()+"',press='"+press_TextField.getText().trim()+"',author='"+author_TextField.getText().trim()+"',press_date='"+press_date_TextField.getText().trim()+"',price='"+price_TextField.getText().trim()+"' where book_name='"+book_name_TextField.getText().trim()+"'";if(db.updateSql(strSQL)){this.dispose();JOptionPane.showMessageDialog(null,"更新图书成功");}else {JOptionPane.showMessageDialog(null,"更新图书失败");}db.closeConnection();}catch(Exception sqle){}}}}package library;public class bookborrow extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JPanel panel1,panel2;JLabel borrowname,bookname,borrowdate,returndate,is_return_label;JTextField borrowdateField,returndateField,is_return;JButton clear,yes,cancel;JComboBox borrownameBox=new JComboBox();JComboBox booknameBox=new JComboBox();public bookborrow(){super("书籍出借");c=getContentPane();c.setLayout(new BorderLayout());Calendar cal = Calendar.getInstance();int year,month,day;// year=cal.get(Calendar.YEAR);// month=cal.get(Calendar.MONTH)+3;//从0开始的// day=cal.get(Calendar.DAY_OF_MONTH);// String cdate = sdf.format(cal.getTime());// String da=Integer.toString(year)+"-0"+Integer.toString(month)+"-"+Integer.toString(day );borrowname=new JLabel("借阅者姓名",JLabel.CENTER);bookname=new JLabel("书名",JLabel.CENTER);borrowdate=new JLabel("借书日期",JLabel.CENTER);// returndate=new JLabel("应还日期",JLabel.CENTER);is_return_label=new JLabel("是否归还",JLabel.CENTER);borrowdateField=new JTextField(15);// borrowdateField.setText(cdate);// returndateField=new JTextField(15);// returndateField.setText(da);is_return=new JTextField(15);is_return.setText("否");try{String strSql="select student_name from reader ";rs=db.getResult(strSql);while(rs.next()){borrownameBox.addItem(rs.getString(1));}}catch(SQLException sqle){}catch(Exception ex){}try{String strSQL="select book_name from book where book_count>borrowed_count";rs=db.getResult(strSQL);while(rs.next()){booknameBox.addItem(rs.getString(1));}}catch(SQLException sqle){}catch(Exception ex){}panel1=new JPanel();panel1.setLayout(new GridLayout(5,2));panel1.add(borrowname);panel1.add(borrownameBox);panel1.add(bookname);panel1.add(booknameBox);panel1.add(borrowdate);panel1.add(borrowdateField);// panel1.add(returndate);// panel1.add(returndateField);panel1.add(is_return_label);panel1.add(is_return);c.add(panel1,BorderLayout.CENTER);panel2=new JPanel();panel2.setLayout(new GridLayout(1,3));clear=new JButton("清空");yes=new JButton("确定");cancel=new JButton("取消");clear.addActionListener(this);yes.addActionListener(this);cancel.addActionListener(this);panel2.add(clear);panel2.add(yes);panel2.add(cancel);c.add(panel2,BorderLayout.SOUTH);setVisible(true);setSize(300,300);}public void actionPerformed(ActionEvent e){if(e.getSource()==cancel){this.dispose();}else if(e.getSource()==clear){borrowdateField.setText("");// returndateField.setText("");is_return.setText("");}else if(e.getSource()==yes){if(borrownameBox.getSelectedItem().equals("")){JOptionPane.showMessageDialog(null, "对不起,没有读者借阅");}else if(booknameBox.getSelectedItem().equals("")){JOptionPane.showMessageDialog(null, "对不起,现在书库没有书");}else {try{//系统计算归还日期//获取输入的借阅日期,自动加两个月String startDate=borrowdateField.getText().trim();SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");Date dateStart=format.parse(startDate);Calendar cd=Calendar.getInstance();cd.setTime(dateStart);cd.add(Calendar.MONTH, 2);String returnDate=format.format(cd.getTime());String strSQL="insert into borrow(student_name,book_name,borrow_date,return_date,is_returned) values('"+borrownameBox.getSelectedItem()+"','"+booknameBox.getSelectedItem()+"','"+borrowdateField.getText().trim()+"','"+returnDate+"','"+is_return.getText().trim()+"')";if(db.updateSql(strSQL)){JOptionPane.showMessageDialog(null, "借阅完成");strSQL = "update reader set borrow_count=borrow_count+1 where student_name='"+borrownameBox.getSelectedItem()+"'";db.updateSql(strSQL);strSQL="update book set borrowed_count=borrowed_count+1 where book_name='"+booknameBox.getSelectedItem()+"'";db.updateSql(strSQL);db.closeConnection();this.dispose();}else{JOptionPane.showMessageDialog(null, "借阅失败");db.closeConnection();this.dispose();}}catch(Exception se){}}}}}package library;import javax.swing.*;import java.awt.*;public class bookborrowlist extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JPanel panel1,panel2;JLabel bookname,studentname;JTextField booknamet,studentnamet;JButton search,exit;JTable table=null;DefaultTableModel defaultModel=null;public bookborrowlist(){super("借阅列表");c=getContentPane();c.setLayout(new BorderLayout());bookname=new JLabel("书名",JLabel.CENTER);studentname=new JLabel("人名",JLabel.CENTER);booknamet=new JTextField(15);studentnamet=new JTextField(15);search=new JButton("查询");exit=new JButton("退出");search.addActionListener(this);exit.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(studentname);box1.add(studentnamet);box1.add(search);Box box2=Box.createHorizontalBox();box2.add(bookname);box2.add(booknamet);box2.add(exit);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(Box.createVerticalGlue());panel1=new JPanel();panel1.add(boxH);panel2=new JPanel();String []name={"读者","书名","借阅时间","应还时间","是否归还"};String [][]data=new String[0][0];defaultModel=new DefaultTableModel(data,name);table=new JTable(defaultModel);table.setPreferredScrollableViewportSize(new Dimension(400,80));JScrollPane s=new JScrollPane(table);panel2.add(s);c.add(panel1,BorderLayout.NORTH);c.add(panel2,BorderLayout.SOUTH);}public void actionPerformed(ActionEvent e){if(e.getSource()==exit){db.closeConnection();this.dispose();}else if(e.getSource()==search){String strSQL="select student_name,book_name,borrow_date,return_date,is_returned from borrow";String strSql=null;if(studentnamet.getText().trim().equals("")&&booknamet.getText().trim().equ als("")){strSql=strSQL;}else if(studentnamet.getText().trim().equals("")){strSql="selectstudent_name,book_name,borrow_date,return_date,is_returned from borrow where book_name='"+booknamet.getText().trim()+"'";}else if(booknamet.getText().trim().equals("")){strSql="selectstudent_name,book_name,borrow_date,return_date,is_returned from borrow where student_name='"+studentnamet.getText().trim()+"'";}else{strSql="selectstudent_name,book_name,borrow_date,return_date,is_returned from borrow where student_name='"+studentnamet.getText().trim()+"'and book_name='"+booknamet.getText().trim()+"'";JOptionPane.showMessageDialog(null, "你借的书还还有7天超期");}try{int rowCount=defaultModel.getRowCount()-1;int j=rowCount;for(int i=0;i<=rowCount;i++){defaultModel.removeRow(j);defaultModel.setRowCount(j);j=j-1;}rs=db.getResult(strSql);while(rs.next()){Vector insertRow=new Vector();insertRow.addElement(rs.getString(1));insertRow.addElement(rs.getString(2));insertRow.addElement(rs.getString(3));insertRow.addElement(rs.getString(4));insertRow.addElement(rs.getString(5));defaultModel.addRow(insertRow);}table.revalidate();}catch(SQLException sqle){}catch(Exception ex){}}}}package library;import javax.swing.*;import java.awt.*;public class bookborrowModify extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;JPanel panel1,panel2,panel3;Container c;JLabel tiplabel=new JLabel("输入借阅者姓名和书名单击确定,将调出此书的相关信息");JLabel borrowlabel,namelabel,borrowdate;JTextField borrowField,nameField,dateField;JButton clear,yes,update,cancel;public bookborrowModify(){super("修改图书出借信息");c=getContentPane();c.setLayout(new BorderLayout());panel3=new JPanel();panel3.add(tiplabel);c.add(panel3,BorderLayout.NORTH);borrowlabel=new JLabel("借阅者姓名",JLabel.CENTER);namelabel=new JLabel("书名",JLabel.CENTER);borrowdate=new JLabel("借书日期",JLabel.CENTER);borrowField=new JTextField(15);nameField=new JTextField(15);dateField=new JTextField(15);panel1=new JPanel();panel1.setLayout(new GridLayout(3,2));panel1.add(borrowlabel);panel1.add(borrowField);panel1.add(namelabel);panel1.add(nameField);panel1.add(borrowdate);panel1.add(dateField);c.add(panel1,BorderLayout.CENTER);panel2=new JPanel();panel2.setLayout(new GridLayout(1,4));clear=new JButton("清空");yes=new JButton("确定");update=new JButton("更新");cancel=new JButton("取消");clear.addActionListener(this);yes.addActionListener(this);update.addActionListener(this);cancel.addActionListener(this);panel2.add(clear);panel2.add(yes);panel2.add(update);panel2.add(cancel);c.add(panel2,BorderLayout.SOUTH);setVisible(true);setSize(400,200);}public void actionPerformed(ActionEvent e) {if(e.getSource()==clear){borrowField.setText("");nameField.setText("");dateField.setText("");}else if(e.getSource()==cancel){this.dispose();}else if(e.getSource()==yes){try{String strSQL="select student_name,book_name,borrow_date from borrow where student_name='"+borrowField.getText().trim()+"'and book_name='"+nameField.getText().trim()+"'";rs=db.getResult(strSQL);if(!rs.first()){JOptionPane.showMessageDialog(null,"此学生没有借过书或者没有此书");}else{borrowField.setText(rs.getString(1));nameField.setText(rs.getString(2));dateField.setText(rs.getString(3));update.setEnabled(true);}}catch(Exception ex){}}else if(e.getSource()==update){String strSQL="update borrow set borrow_date='"+dateField.getText().trim()+"' where student_name='"+borrowField.getText().trim()+"'and book_name='"+nameField.getText().trim()+"'";if(db.updateSql(strSQL)){JOptionPane.showMessageDialog(null,"更新成功");db.closeConnection();this.dispose();}else{JOptionPane.showMessageDialog(null,"更新失败");db.closeConnection();this.dispose();}}}}package library;import javax.swing.*;import java.awt.*;public class booklist extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JPanel panel1,panel2,panel3;JLabel bookname,authorname,press;JTextField booknamet,authornamet,presst;JButton search,exit;JTable table=null;DefaultTableModel defaultModel=null;public booklist(){super("书籍信息查询");c=getContentPane();c.setLayout(new BorderLayout());bookname=new JLabel("书名",JLabel.CENTER);authorname=new JLabel("作者",JLabel.CENTER);press=new JLabel("出版社",JLabel.CENTER);booknamet=new JTextField(15);authornamet=new JTextField(15);presst=new JTextField(15);search=new JButton("查询");exit=new JButton("退出");search.addActionListener(this);exit.addActionListener(this);panel1=new JPanel();panel1.add(bookname);panel1.add(booknamet);panel1.add(authorname);panel1.add(authornamet);panel2=new JPanel();panel2.add(press);panel2.add(presst);panel2.add(search);panel2.add(exit);String []name={"书号","书名","出版社","作者","出版日期","价格","图书数目","已借数目","剩余数目","藏书地址"};String [][]data=new String[0][0];defaultModel=new DefaultTableModel(data,name);table=new JTable(defaultModel);table.setPreferredScrollableViewportSize(new Dimension(400,80));JScrollPane s=new JScrollPane(table);panel3=new JPanel();panel3.add(s);c.add(panel1,BorderLayout.NORTH);c.add(panel2,BorderLayout.CENTER);c.add(panel3,BorderLayout.SOUTH);}public void actionPerformed(ActionEvent e){if(e.getSource()==exit){db.closeConnection();this.dispose();}else if(e.getSource()==search){String strSQL="select book_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_ count-borrowed_count,store_address from book";String strSql=null;if(booknamet.getText().trim().equals("")&&authornamet.getText().trim().equa ls("")&&presst.getText().trim().equals("")){strSql=strSQL;}elseif(booknamet.getText().trim().equals("")&&authornamet.getText().trim().equals(" ")){strSql="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_ count-borrowed_count,store_address from book where press='"+presst.getText().trim()+"'";}elseif(authornamet.getText().trim().equals("")&&presst.getText().trim().equals("")) {strSql="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_ count-borrowed_count,store_address from book where book_name='"+booknamet.getText().trim()+"'";}elseif(booknamet.getText().trim().equals("")&&presst.getText().trim().equals("")) {strSql="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_ count-borrowed_count,store_address from book where author='"+authornamet.getText().trim()+"'";}else{strSql="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_ count-borrowed_count,store_address from book where book_name='"+booknamet.getText().trim()+"'and author='"+authornamet.getText().trim()+"'and press='"+presst.getText().trim()+"'";}try{int rowCount=defaultModel.getRowCount()-1;int j=rowCount;for(int i=0;i<=rowCount;i++){defaultModel.removeRow(j);defaultModel.setRowCount(j);j=j-1;}rs=db.getResult(strSql);while(rs.next()){Vector insertRow=new Vector();insertRow.addElement(rs.getString(1));insertRow.addElement(rs.getString(2));insertRow.addElement(rs.getString(3));insertRow.addElement(rs.getString(4));insertRow.addElement(rs.getString(5));insertRow.addElement(rs.getString(6));insertRow.addElement(rs.getString(7));insertRow.addElement(rs.getString(8));insertRow.addElement(rs.getString(9));insertRow.addElement(rs.getString(10));defaultModel.addRow(insertRow);}table.revalidate();}catch(SQLException sqle){}catch(Exception ex){}}}}package library;import javax.swing.*;import java.awt.*;public class bookreturn extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;JPanel panel1,panel2;Container c;JLabel namelabel,booklabel,returndatelabel;JTextField returnField;JButton clear,yes,cancel;JComboBox bookname=new JComboBox();JComboBox readername=new JComboBox();public bookreturn(){super("图书还入");c=getContentPane();c.setLayout(new BorderLayout());Calendar cal = Calendar.getInstance();String cdate = sdf.format(cal.getTime());namelabel=new JLabel("还书者姓名",JLabel.CENTER);booklabel =new JLabel("书名",JLabel.CENTER);returndatelabel=new JLabel("日期",JLabel.CENTER);returnField=new JTextField(15);returnField.setText(cdate);try{String s="";String strSQL="select student_name from reader where borrow_count!=0";rs=db.getResult(strSQL);while(rs.next()){readername.addItem(rs.getString(1));}}catch(SQLException sqle){}catch(Exception ex){}try{String s="";String strSQL="select book_name from borrow where is_returned='否'";rs=db.getResult(strSQL);while(rs.next()){bookname.addItem(rs.getString(1));}}catch(SQLException sqle){}catch(Exception ex){}panel1=new JPanel();panel1.setLayout(new GridLayout(3,2));。

java项目开发实例图书信息管理系统开发及源码

java项目开发实例图书信息管理系统开发及源码

j a v a项目开发实例图书信息管理系统开发及源码集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-图书信息管理系统一、系统功能概述:根据图书信息管理系统的特点,可以将本系统分为2大功能模块,分别为:基础数据维护、系统数据维护。

本系统各个部分及其包括的具体功能模块如下图所示:二、数据库设计:图书信息表:图书类别表:用户信息表:读者信息表:三、系统源代码:ewInstance();conn = (dbUrl, dbUser, dbPwd);"数据库连接成功!");}elsereturn;} catch (Exception ee) {();}}xecuteQuery(sql);} catch (SQLException e) {();return null;} finally {}}xecuteUpdate(sql);} catch (SQLException e) {quals("[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]DELETE 语句与 COLUMN REFERENCE 约束'FK_TB_BORRO_REFERENCE_TB_BOOKI' 冲突。

该冲突发生于数据库'db_library',表 'tb_borrow', column 'bookISBN'。

"))return -1;} finally {}}etLayout(borderLayout);setIconifiable(true); dd(panel);final JLabel label_2 = new JLabel();("图书编号:");(label_2);ISBN = new JTextField("请输入13位书号",13);(new MyDocument(13)); dd(panel_1, ;final FlowLayout flowLayout = new FlowLayout();(2);(30);;(flowLayout);buttonadd= new JButton();(new addBookActionListener()); ("添加");(buttonadd);buttonclose = new JButton();(new CloseActionListener());("关闭");(buttonclose);final JLabel label_5 = new JLabel(); ImageIcon bookAddIcon=(""); (bookAddIcon);(new Dimension(400, 80));(new LineBorder, 1, false)); getContentPane().add(label_5, ; ("新书定购(LOGO图片)");setVisible(true);rim()).isEmpty()){(null, "添加书号重复!");return;}}}class ISBNkeyListener extends KeyAdapter {public void keyPressed(final KeyEvent e) {if () == 13){();}}}class CloseActionListener implements ActionListener { ength()==0){(null, "书号文本框不可以为空");return;}if().length()!=13){(null, "书号文本框输入位数为13位");return;}if().length()==0){(null, "图书名称文本框不可以为空");return;}if().length()==0){(null, "作者文本框不可以为空");return;}if().length()==0){(null, "出版日期文本框不可以为空");return;}if().length()==0){(null, "单价文本框不可以为空");return;}String ISBNs=().trim();rim();String bookNames=().trim();String writers=().trim();String publishers=(String)().trim();String pubDates=().trim();String prices=().trim();int i=(ISBNs,bookTypes, bookNames, writers, translators, publishers, if(i==1){(null, "添加成功");doDefaultCloseAction();}}}class NumberListener extends KeyAdapter { public void keyTyped(KeyEvent e) {String numStr="09."+(char)8;if())<0){();}}}}et()));results[i][1]=booktypename;results[i][2]=();results[i][3]=();results[i][4]=();results[i][5]=();results[i][6]=();results[i][7]=();}return results;}public BookModiAndDelIFrame() {super();final BorderLayout borderLayout = new BorderLayout();getContentPane().setLayout(borderLayout);setIconifiable(true);setClosable(true);setTitle("图书信息修改与删除");setBounds(100, 100, 640, 406);dd(panel_1, ;final FlowLayout flowLayout = new FlowLayout();(2);(30);;(flowLayout);final JButton button = new JButton();(new addBookActionListener());("修改");(button);final JButton button_2 = new JButton();(new ActionListener(){public void actionPerformed(final ActionEvent e) {String ISBNs=().trim();int i=(ISBNs);if(i==1){(null, "删除成功");Object[][] results=getFileStates());dd(headLogo, ;final JPanel panel_2 = new JPanel();final BorderLayout borderLayout_1 = new BorderLayout();(5);(borderLayout_1);(new EmptyBorder(5, 10, 5, 10));getContentPane().add(panel_2);final JScrollPane scrollPane = new JScrollPane();(scrollPane);Object[][] results=getFileStates());columnNames = new String[]{"图书编号", "图书类别", "图书名称", "作者", "译者", "出版商", "出版日期","价格"};table = new JTable(results,columnNames);;oString().trim();typeids = (selRow, 1).toString().trim();bookNames = (selRow, 2).toString().trim();writers = (selRow, 3).toString().trim();translators = (selRow, 4).toString().trim();publishers = (selRow, 5).toString().trim();dates = (selRow, 6).toString().trim();prices = (selRow, 7).toString().trim();(ISBNs);ength()==0){(null, "书号文本框不可以为空或则输入数字不可以大于13个");return;}if().length()!=13){(null, "书号文本框输入位数为13位");return;}if().length()==0){(null, "图书名称文本框不可以为空");return;}if().length()==0){(null, "作者文本框不可以为空");return;}if().length()==0){(null, "出版人文本框不可以为空");}ength()==0){(null, "出版日期文本框不可以为空");return;}if().length()==0){(null, "单价文本框不可以为空");return;}String ISBNs=().trim();rim();String bookNames=().trim();String writers=().trim();String publishers=().trim();String pubDates=().trim();String prices=().trim();int i=(ISBNs, bookTypes, bookNames, writers, translators, publishers, (pubDates), (prices));if(i==1){(null, "修改成功");Object[][] results=getFileStates());+(char)8;();}}}}dd(panel, ;final JLabel label_4 = new JLabel();ImageIcon bookTypeAddIcon=("");(bookTypeAddIcon);(new Dimension(360, 80));("图书类别图片(400*80)");(label_4);final JPanel panel_3 = new JPanel();(new FlowLayout());getContentPane().add(panel_3, ;final JLabel label_1 = new JLabel();(new Dimension(20, 50));(label_1);final JLabel label_2 = new JLabel();(new Dimension(90, 20));("图书类别名称:");(label_2);(new MyDocument(20));(30);(bookTypeName);final JButton button = new JButton();("保存");(new ActionListener(){public void actionPerformed(final ActionEvent e) { if().length()==0){(null, "图书类别文本框不可为空");return;}int i=().trim());if(i==1){(null, "添加成功!");doDefaultCloseAction();}else{(null, "图书类别名已存在,请重新输入!");}}});(button);final JButton buttonDel = new JButton();(new ActionListener(){public void actionPerformed(final ActionEvent e) {doDefaultCloseAction();}});(buttonDel);setVisible(true);}class NumberListener extends KeyAdapter {public void keyTyped(KeyEvent e) {String numStr="09."+(char)8;if())<0){();}}}}dd(panel, ;final JLabel logoLabel = new JLabel();ImageIcon bookTypeModiAndDelIcon=("");(bookTypeModiAndDelIcon);(new Dimension(400, 80));(logoLabel);final JPanel panel_1 = new JPanel(); getContentPane().add(panel_1);final JScrollPane scrollPane = new JScrollPane(); (new Dimension(400, 130));(scrollPane);model=new DefaultTableModel();Object[][] results=getFileStates());(results,columnNames);table = new JTable();(model);(new TableListener());(table);final JPanel panel_2 = new JPanel();(panel_2);final GridLayout gridLayout = new GridLayout(0, 6);(5);(5);(gridLayout);(new Dimension(400, 26));final JLabel label = new JLabel();("类别编号:");BookTypeId = new JTextField();(false);(BookTypeId);final JLabel label_1 = new JLabel();("类别名称:");(label_1);comboBox = new JComboBox();bookTypeModel= (DefaultComboBoxModel)();oString().trim());(selRow, 1).toString().trim());}}class ButtonAddListener implements ActionListener{ public void actionPerformed(ActionEvent e){Object selectedItem = ();int i=().trim(),());if(i==1){(null, "修改成功");Object[][] results=getFileStates());(results,columnNames);(model);}}class ButtonDelListener implements ActionListener{ public void actionPerformed(ActionEvent e){int i=().trim());if(i==1){(null, "删除成功");Object[][] results=getFileStates());(results,columnNames);(model);}}}class CloseActionListener implements ActionListener { etLayout(borderLayout);setTitle("图书馆管理系统登录");setBounds(100, 100, 285, 194);final JPanel panel = new JPanel();(new BorderLayout());(new EmptyBorder(0, 0, 0, 0));getContentPane().add(panel);final JPanel panel_2 = new JPanel();final GridLayout gridLayout = new GridLayout(0, 2);(20);(gridLayout);(panel_2);final JLabel label = new JLabel();;(new Dimension(0, 0));(new Dimension(0, 0));(label);("用户名:");username = new JTextField(20);(new Dimension(0, 0));(username);final JLabel label_1 = new JLabel(); ;(label_1);("密码:");password = new JPasswordField(20); (new MyDocument(6));('*');etSystemLookAndFeelClassName());new LoginIFrame();dd(toolBar, ; final JLabel label = new JLabel(); (0, 0, 0, 0);().getSize());("<html><img width=" + + " height="+ + " src='"+ ().getResource("/")+ "'></html>");}});(label,new Integer);getContentPane().add(DESKTOP_PANE);}/*** 创建工具栏** @return JToolBar*/private JToolBar createToolBar() { etLayout(new GridBagLayout());setBounds(100, 100, 300, 228);final JLabel label_4 = new JLabel();(new Font("", , 14));;("<html>注:每个<b>操作员</b>只能修改自己的密码。

用Java写一个图书管理系统的代码

用Java写一个图书管理系统的代码

用Java写一个图书管理系统的代码```import java.util.*;public class BookManager {// Create a list for book storageprivate List<Book> books;public BookManager() {books = new ArrayList<Book>();}// Add a book to the listpublic void addBook(Book book) {books.add(book);}// Remove a book from the listpublic void removeBook(Book book) {books.remove(book);}// Get all books in the listpublic List<Book> getAllBooks() {return books;}// Search a book by book namepublic List<Book> searchByName(String name) {List<Book> resultBooks = new ArrayList<Book>();for (Book book : books) {if (book.getName().equals(name)) {resultBooks.add(book);}}return resultBooks;}// Search a book by author namepublic List<Book> searchByAuthor(String author) { List<Book> resultBooks = new ArrayList<Book>(); for (Book book : books) {if (book.getAuthor().equals(author)) {resultBooks.add(book);}}return resultBooks;}}class Book {private String name;private String author;public Book(String name, String author) { = name;this.author = author;}public String getName() {return name;}public void setName(String name) { = name;}public String getAuthor() {return author;}public void setAuthor(String author) { this.author = author;}}```。

Java图书管理系统-附源码

Java图书管理系统-附源码
图书信息查询:
图书信息删除:
图书信息显示:
图书借阅:
图书归还:
分析总结:
本程序在数据库设计方面可以改为多张表存储的方式,用三张表来记录图书信息,借阅关系和学生信息,这样可以减少数据冗余,还可以增加一些其他功能,比如图书挂失等功能。由于刚刚接触到Java界面设计,所以本程序在界面设计方面还有有待改进的地方。
JMenuItem itemDelete = new JMenuItem();
JMenuItem itemSelect = new JMenuItem();
JMenuItem itБайду номын сангаасmBook = new JMenuItem();
JMenuItem itemReturn = new JMenuItem();
图书ID,图书名称,图书所有者,图书的状态,图书使用者(允许为空)均为varchar(50)类型,在Java中可以方便的查询。图书存储信息的具体内容如下图所示:
功能模块:
程序设计:
主框架设计:
主框架上方包含三个按钮,分别是“系统管理”、“图书信息管理”和“图书流通管理”,定义JMenuBar类的对象、JMenu类的对象和JMenuItem类的对象,分别表示菜单栏、菜单组和菜单选项,然后调用初始化函数,将不同类的对象通过setText()函数设定不同的文本,然后将其添加到窗口容器中。对每个按钮分别添加不同的消息监听,响应相应的消息,调用不同的类完成不同的功能。消息监听功能详见源代码bookMain类。
删除图书信息模块:
调用bookDel类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话框,提示用户输入要删除图书的ID。完成输入后,点击确定按钮,消息监听模块将调用bookBean的构造函数产生一个该类的对象,通过该对象调用bookBean的bookDel函数,执行删除的SQL语句,通过delete语句完成图书信息的删除功能。

基于java的图书管理系统源代码【范本模板】

基于java的图书管理系统源代码【范本模板】

声明:本系统是基于C/S的图书管理系统,主要使用的是Oracle数据库,下面附所有实现代码package library;import java.awt。

BorderLayout;import java.awt。

Container;import java。

awt。

GridLayout;import java。

awt.event.ActionEvent;import java。

awt。

event。

ActionListener;import java。

sql.ResultSet;import javax。

swing.JButton;import javax.swing。

JComboBox;import javax.swing.JFrame;import javax.swing。

JLabel;import javax。

swing。

JOptionPane;import javax。

swing。

JPanel;import javax.swing.JTextField;public class book_add extends JFrame implements ActionListener{DataBaseManager db=new DataBaseManager();ResultSet rs;JPanel panel1,panel2;JLabel book_id_label,book_name_label,author_label,press_label,press_date_label,price_label,book_num_label,borrowed_num_label,address;JTextField book_id_TextField,book_name_TextField,author_TextField,press_TextField,press_date_TextField,price_TextField,book_num_TextField, borrowed_count;JComboBox addresst;Container c;JButton clear,add,exit;public book_add(){super(”添加图书信息");c=getContentPane();c。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图书信息管理系统一、系统功能概述:根据图书信息管理系统的特点,可以将本系统分为2大功能模块,分别为:基础数据维护、系统数据维护。

本系统各个部分及其包括的具体功能模块如下图所示:二、数据库设计:图书信息表:字段名说明类型长度及备注ISBN国际标准书号Varchar(13)主键typeId图书类型id IntBookname书名Varchar(40)Writer作者Varchar(21)Translater译者Varchar(30)可以为空Publisher出版社Varchar(50)Date出版日期SmalldatetimePrice价格money图书类别表:字段名说明类型长度及备注TypeName图书类型Varchar(20)用户信息表:三、系统源代码:Com.zhang.dao:Dao.java //数据库的连接与操作类package com.zhang.dao;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.zhang.model.BookInfo;import com.zhang.model.BookType;import com.zhang.model.Operator;import com.zhang.model.Reader;import er;public class Dao {protected static String dbClassName ="com.microsoft.sqlserver.jdbc.SQLServerDriver";protected static String dbUrl = "jdbc:sqlserver://localhost:1433;"+ "DatabaseName=db_lib;SelectMethod=Cursor";protected static String dbUser = "sa";protected static String dbPwd = "zhangyong";protected static String second = null;private static Connection conn = null;//创建数据库连接private Dao() {try {if (conn == null) {Class.forName(dbClassName).newInstance();conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);System.out.println("数据库连接成功!");}elsereturn;} catch (Exception ee) {ee.printStackTrace();}}//执行查询private static ResultSet executeQuery(String sql) {try {if(conn==null)new Dao();returnconn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).ex ecuteQuery(sql);} catch (SQLException e) {e.printStackTrace();return null;} finally {}}//执行更新private static int executeUpdate(String sql) {try {if(conn==null)new Dao();return conn.createStatement().executeUpdate(sql);} catch (SQLException e) {System.out.println(e.getMessage());//if(e.getMessage().equals("[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]DELETE 语句与 COLUMN REFERENCE 约束'FK_TB_BORRO_REFERENCE_TB_BOOKI' 冲突。

该冲突发生于数据库 'db_library',表'tb_borrow', column 'bookISBN'。

"))return -1;} finally {}}//关闭数据库public static void close() {try {conn.close();} catch (SQLException e) {e.printStackTrace();}finally{conn = null;}}/** 管理员登录方法*/public static Operator check(String name, String password) {int i = 0;Operator operater=new Operator();String sql = "select * from tb_operator where name='" + name+ "' and password='" + password + "'and admin=1";ResultSet rs = Dao.executeQuery(sql);try {while (rs.next()) {String names = rs.getString(1);operater.setId(rs.getString("id"));operater.setName(rs.getString("name"));operater.setGrade(rs.getString("admin"));operater.setPassword(rs.getString("password"));if (names != null) {i = 1;}}} catch (Exception e) {e.printStackTrace();}Dao.close();return operater;}/** 查询类别方法*///查询图书目录public static List selectBookCategory() {List list=new ArrayList();String sql = "select * from tb_bookType";ResultSet rs = Dao.executeQuery(sql);try {while (rs.next()) {BookType bookType=new BookType();bookType.setId(rs.getString("id"));bookType.setTypeName(rs.getString("typeName"));list.add(bookType);}} catch (Exception e) {e.printStackTrace();}Dao.close();return list;}public static List selectBookCategory(String bookType) {List list=new ArrayList();String sql = "select days from tb_bookType where typeName='"+bookType+"'";ResultSet rs = Dao.executeQuery(sql);try {while (rs.next()) {BookType type=new BookType();type.setDays(rs.getString("days"));list.add(type);}} catch (Exception e) {e.printStackTrace();}return list;}/** 图书类别表相关操作**///插入图书类型public static int InsertBookType(String bookTypeName){int i=0;try{String sql="insert into tb_bookType(typeName)values('"+bookTypeName+"')";i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}return i;}//更新图书类别public static int UpdatebookType(String id,String typeName){int i=0;try{String sql="update tb_bookType set typeName='"+typeName+"' where id='"+id+"'";//System.out.println(sql);i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}Dao.close();return i;}//删除图书类别public static int DelbookType(String id){int i=0;try{String sql="delete from tb_bookType where id='"+id+"'";//System.out.println(sql);i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}return i;}/** 图书信息表相关操作*//** 插入图书信息方法*///插入图书信息public static int Insertbook(String ISBN,String typeId,String bookname,String writer,String translator,String publisher,Date date,Double price){int i=0;try{String sql="insert intotb_bookInfo(ISBN,typeId,bookname,writer,translator,publisher,date,price)values('"+ISBN+"','"+typeId+"','"+bookname+"','"+writer+"','"+translator+"','"+publ isher+"','"+date+"',"+price+")";//System.out.println(sql);i=Dao.executeUpdate(sql);}catch(Exception e){System.out.println(e.getMessage());}Dao.close();return i;}/** 查询图书相关信息**/public static List selectBookInfo() {List list=new ArrayList();String sql = "select * from tb_bookInfo";ResultSet rs = Dao.executeQuery(sql);try {while (rs.next()) {BookInfo bookinfo=new BookInfo();bookinfo.setISBN(rs.getString("ISBN"));bookinfo.setTypeid(rs.getString("typeid"));bookinfo.setBookname(rs.getString("bookname"));bookinfo.setWriter(rs.getString("writer"));bookinfo.setTranslator(rs.getString("translator"));bookinfo.setPublisher(rs.getString("publisher"));bookinfo.setDate(rs.getDate("date"));bookinfo.setPrice(rs.getDouble("price"));list.add(bookinfo);}} catch (Exception e) {e.printStackTrace();}Dao.close();return list;}public static List selectBookInfo(String ISBN) {List list=new ArrayList();String sql = "select * from tb_bookInfo where ISBN='"+ISBN+"'";ResultSet rs = Dao.executeQuery(sql);try {while (rs.next()) {BookInfo bookinfo=new BookInfo();bookinfo.setISBN(rs.getString("ISBN"));bookinfo.setTypeid(rs.getString("typeid"));bookinfo.setBookname(rs.getString("bookname"));bookinfo.setWriter(rs.getString("writer"));bookinfo.setTranslator(rs.getString("translator"));bookinfo.setPublisher(rs.getString("publisher"));bookinfo.setDate(rs.getDate("date"));bookinfo.setPrice(rs.getDouble("price"));list.add(bookinfo);}} catch (Exception e) {e.printStackTrace();}Dao.close();return list;}/** 修改图书信息方法*///更新图书信息public static int Updatebook(String ISBN,String typeId,String bookname,String writer,String translator,String publisher,Date date,Double price){int i=0;try{String sql="update tb_bookInfo setISBN='"+ISBN+"',typeId='"+typeId+"',bookname='"+bookname+"',writer='"+writer+"',tra nslator='"+translator+"',publisher='"+publisher+"',date='"+date+"',price="+price+" where ISBN='"+ISBN+"'";//System.out.println(sql);i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}Dao.close();return i;}// /*// * 删除图书信息方法// */public static int Delbook(String ISBN){int i=0;try{String sql="delete from tb_bookInfo where ISBN='"+ISBN+"'";//System.out.println(sql);i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}Dao.close();return i;}/** 对读者信息表执行的相关操作*///增加读者信息public static int InsertReader(String name,String sex,String age,String identityCard,Date date,String maxNum,String tel,Double keepMoney,String zj,String zy,Date bztime,String ISBN){int i=0;try{String sql="insert intotb_reader(name,sex,age,identityCard,date,maxNum,tel,keepMoney,zj,zy,bztime,ISBN) values('"+name+"','"+sex+"','"+age+"','"+identityCard+"','"+date+"','"+maxNum+"','" +tel+"',"+keepMoney+",'"+zj+"','"+zy+"','"+bztime+"','"+ISBN+"')";System.out.println(sql);i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}Dao.close();return i;}public static List selectReader() {List list=new ArrayList();String sql = "select * from tb_reader";ResultSet rs = Dao.executeQuery(sql);try {while (rs.next()) {Reader reader=new Reader();//reader.setId(rs.getString("id"));reader.setName(rs.getString("name"));reader.setSex(rs.getString("sex"));reader.setAge(rs.getString("age"));reader.setIdentityCard(rs.getString("identityCard"));reader.setDate(rs.getDate("date"));reader.setMaxNum(rs.getString("maxNum"));reader.setTel(rs.getString("tel"));reader.setKeepMoney(rs.getDouble("keepMoney"));reader.setZj(rs.getInt("zj"));reader.setZy(rs.getString("zy"));reader.setISBN(rs.getString("ISBN"));reader.setBztime(rs.getDate("bztime"));list.add(reader);}} catch (Exception e) {e.printStackTrace();}Dao.close();return list;}public static List selectReader(String readerISBN) {List list=new ArrayList();String sql = "select * from tb_reader where ISBN='"+readerISBN+"'";ResultSet rs = Dao.executeQuery(sql);try {while (rs.next()) {Reader reader=new Reader();reader.setName(rs.getString("name"));reader.setSex(rs.getString("sex"));reader.setAge(rs.getString("age"));reader.setIdentityCard(rs.getString("identityCard"));reader.setDate(rs.getDate("date"));reader.setMaxNum(rs.getString("maxNum"));reader.setTel(rs.getString("tel"));reader.setKeepMoney(rs.getDouble("keepMoney"));reader.setZj(rs.getInt("zj"));reader.setZy(rs.getString("zy"));reader.setISBN(rs.getString("ISBN"));reader.setBztime(rs.getDate("bztime"));list.add(reader);}} catch (Exception e) {e.printStackTrace();}Dao.close();return list;}//更新读者信息public static int UpdateReader(String id,String name,String sex,String age,String identityCard,Date date,String maxNum,String tel,Double keepMoney,String zj,String zy,Date bztime,String ISBN){int i=0;try{String sql="update tb_reader setname='"+name+"',sex='"+sex+"',age='"+age+"',identityCard='"+identityCard+"',date='" +date+"',maxNum='"+maxNum+"',tel='"+tel+"',keepMoney="+keepMoney+",zj='"+zj+"',zy=' "+zy+"',bztime='"+bztime+"'where ISBN='"+ISBN+"'";i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}Dao.close();return i;}//删除读者信息public static int DelReader(String ISBN){int i=0;try{String sql="delete from tb_reader where ISBN='"+ISBN+"'";//System.out.println(sql);i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}Dao.close();return i;}//newpublic static List selectbookserch() {List list=new ArrayList();String sql = "select * from tb_bookInfo";ResultSet s = Dao.executeQuery(sql);try {while (s.next()) {BookInfo bookinfo=new BookInfo();bookinfo.setISBN(s.getString(1));bookinfo.setTypeid(s.getString(2));bookinfo.setBookname(s.getString(3));bookinfo.setWriter(s.getString(4));bookinfo.setTranslator(s.getString(5));bookinfo.setPublisher(s.getString(6));bookinfo.setDate(s.getDate(7));bookinfo.setPrice(s.getDouble(8));list.add(bookinfo);}} catch (Exception e) {e.printStackTrace();}Dao.close();return list;}//插入管理员public static int Insertoperator(String name,String sex,int age,String identityCard,Date workdate,String tel,String password,int yajin){int i=0;try{String sql="insert intotb_operator(name,sex,age,identityCard,workdate,tel,password,yajin)values('"+name+"','"+sex+"',"+age+",'"+identityCard+"','"+workdate+"','"+tel+"','"+ password+"','"+yajin+"')";System.out.println(sql);i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}Dao.close();return i;}public static List selectuser() {List list=new ArrayList();String sql = "select id,name,sex,age,yajin,workdate,tel,password fromtb_operator where admin=0";ResultSet rs = Dao.executeQuery(sql);try {while (rs.next()) {User user=new User();user.setId(rs.getInt(1));user.setName(rs.getString(2));user.setSex(rs.getString(3));user.setAge(rs.getInt(4));//user.setIdentityCard(rs.getString(5));user.setYajin(rs.getInt(5));user.setWorkdate(rs.getDate(6));user.setTel(rs.getString(7));user.setPassword(rs.getString(8));list.add(user);}} catch (Exception e) {e.printStackTrace();}Dao.close();return list;}//删除用户public static int Deluser(int id){int i=0;try{String sql="delete from tb_operator where id='"+id+"'";//System.out.println(sql);i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}Dao.close();return i;}public static int Updateuser(int id,String name,String sex,int age,String identityCard,Date workdate,String tel,String password){int i=0;try{String sql="update tb_operator setname='"+name+"',sex='"+sex+"',age="+age+",identityCard='"+identityCard+"',workdate= '"+workdate+"',tel='"+tel+"',password='"+password+"' where id='"+id+"'";i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}Dao.close();return i;}public static int Updatepass(String password,String name){int i=0;try{String sql="update tb_operator set password='"+password+"' where name='"+name+"'";i=Dao.executeUpdate(sql);}catch(Exception e){e.printStackTrace();}Dao.close();return i;}}Com.zhang.iframe: //窗体包BookAddIFrame.java //图书信息添加package com.zhang.iframe;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.SystemColor;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusAdapter;import java.awt.event.FocusEvent;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import .URL;import java.text.SimpleDateFormat;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.swing.DefaultComboBoxModel;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFormattedTextField;import javax.swing.JInternalFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;import javax.swing.border.EmptyBorder;import javax.swing.border.LineBorder;import com.zhang.util.Item;import com.zhang.dao.Dao;import com.zhang.model.BookType;import com.zhang.util.MyDocument;import com.zhang.util.CreateIcon;/*** 名称:图书添加窗体**/public class BookAddIFrame extends JInternalFrame { private JTextField publisher;private JTextField price;private JFormattedTextField pubDate;private JTextField translator;private JTextField writer;private JTextField ISBN;private JTextField bookName;private JComboBox bookType;private JButton buttonadd;private JButton buttonclose;DefaultComboBoxModel bookTypeModel;Map map=new HashMap();public BookAddIFrame() {super();final BorderLayout borderLayout = new BorderLayout();getContentPane().setLayout(borderLayout);setIconifiable(true); // 设置窗体可最小化---必须setClosable(true); // 设置窗体可关闭---必须setTitle("图书信息添加"); // 设置窗体标题---必须setBounds(100, 100, 396, 260); // 设置窗体位置和大小---必须final JPanel panel = new JPanel();panel.setBorder(new EmptyBorder(5, 10, 5, 10));final GridLayout gridLayout = new GridLayout(0, 4);gridLayout.setVgap(5);gridLayout.setHgap(5);panel.setLayout(gridLayout);getContentPane().add(panel);final JLabel label_2 = new JLabel();label_2.setText("图书编号:");panel.add(label_2);ISBN = new JTextField("请输入13位书号",13);ISBN.setDocument(new MyDocument(13)); //设置书号文本框最大输入值为13ISBN.setColumns(13);ISBN.addKeyListener(new ISBNkeyListener());ISBN.addFocusListener(new ISBNFocusListener());panel.add(ISBN);final JLabel label = new JLabel();label.setHorizontalAlignment(SwingConstants.CENTER);label.setText("类别:");panel.add(label);bookType = new JComboBox();bookTypeModel= (DefaultComboBoxModel)bookType.getModel();//从数据库中取出图书类别List list=Dao.selectBookCategory();for(int i=0;i<list.size();i++){BookType booktype=(BookType)list.get(i);Item item=new Item();item.setId((String)booktype.getId());item.setName((String)booktype.getTypeName());bookTypeModel.addElement(item);}panel.add(bookType);final JLabel label_1 = new JLabel();label_1.setText("书名:");panel.add(label_1);bookName = new JTextField();panel.add(bookName);final JLabel label_3 = new JLabel();label_3.setHorizontalAlignment(SwingConstants.CENTER); label_3.setText("作者:");panel.add(label_3);writer = new JTextField();writer.setDocument(new MyDocument(10));panel.add(writer);final JLabel label_2_1 = new JLabel();label_2_1.setText("出版社:");panel.add(label_2_1);publisher=new JTextField();publisher.setDocument(new MyDocument(10));panel.add(publisher);final JLabel label_4 = new JLabel();label_4.setHorizontalAlignment(SwingConstants.CENTER); label_4.setText("译者:");panel.add(label_4);translator = new JTextField();translator.setDocument(new MyDocument(10));panel.add(translator);final JLabel label_1_1 = new JLabel();label_1_1.setText("出版日期:");panel.add(label_1_1);SimpleDateFormat myfmt=new SimpleDateFormat("yyyy-MM-dd");pubDate= new JFormattedTextField(myfmt.getDateInstance());pubDate.setValue(new java.util.Date());panel.add(pubDate);final JLabel label_3_1 = new JLabel();label_3_1.setHorizontalAlignment(SwingConstants.CENTER);label_3_1.setText("单价:");panel.add(label_3_1);price= new JTextField();price.setDocument(new MyDocument(5));price.addKeyListener(new NumberListener());panel.add(price);final JPanel panel_1 = new JPanel();panel_1.setBorder(new LineBorder(SystemColor.activeCaptionBorder, 1, false));getContentPane().add(panel_1, BorderLayout.SOUTH);final FlowLayout flowLayout = new FlowLayout();flowLayout.setVgap(2);flowLayout.setHgap(30);flowLayout.setAlignment(FlowLayout.RIGHT);panel_1.setLayout(flowLayout);buttonadd= new JButton();buttonadd.addActionListener(new addBookActionListener());buttonadd.setText("添加");panel_1.add(buttonadd);buttonclose = new JButton();buttonclose.addActionListener(new CloseActionListener());buttonclose.setText("关闭");panel_1.add(buttonclose);final JLabel label_5 = new JLabel();ImageIcon bookAddIcon=CreateIcon.add("newBookorderImg.jpg");label_5.setIcon(bookAddIcon);label_5.setPreferredSize(new Dimension(400, 80));label_5.setBorder(new LineBorder(SystemColor.activeCaptionBorder, 1, false));getContentPane().add(label_5, BorderLayout.NORTH);label_5.setText("新书定购(LOGO图片)");setVisible(true); // 显示窗体可关闭---必须在添加所有控件之后执行该语句}class ISBNFocusListener extends FocusAdapter {public void focusLost(FocusEvent e){if(!Dao.selectBookInfo(ISBN.getText().trim()).isEmpty()){JOptionPane.showMessageDialog(null, "添加书号重复!");return;}}}class ISBNkeyListener extends KeyAdapter {public void keyPressed(final KeyEvent e) {if (e.getKeyCode() == 13){buttonadd.doClick();}}}class CloseActionListener implements ActionListener { // 添加关闭按钮的事件监听器public void actionPerformed(final ActionEvent e) {doDefaultCloseAction();}}class addBookActionListener implements ActionListener { // 添加按钮的单击事件监听器public void actionPerformed(final ActionEvent e) {if(ISBN.getText().length()==0){JOptionPane.showMessageDialog(null, "书号文本框不可以为空");return;}if(ISBN.getText().length()!=13){JOptionPane.showMessageDialog(null, "书号文本框输入位数为13位");return;}if(bookName.getText().length()==0){JOptionPane.showMessageDialog(null, "图书名称文本框不可以为空");return;}if(writer.getText().length()==0){JOptionPane.showMessageDialog(null, "作者文本框不可以为空");return;}if(pubDate.getText().length()==0){JOptionPane.showMessageDialog(null, "出版日期文本框不可以为空");return;}if(price.getText().length()==0){JOptionPane.showMessageDialog(null, "单价文本框不可以为空");return;}String ISBNs=ISBN.getText().trim();//分类Object selectedItem = bookType.getSelectedItem();if (selectedItem == null)return;Item item = (Item) selectedItem;String bookTypes=item.getId();String translators=translator.getText().trim();String bookNames=bookName.getText().trim();String writers=writer.getText().trim();String publishers=(String)publisher.getText().trim();String pubDates=pubDate.getText().trim();String prices=price.getText().trim();int i=Dao.Insertbook(ISBNs,bookTypes, bookNames, writers, translators, publishers, java.sql.Date.valueOf(pubDates),Double.parseDouble(prices));if(i==1){JOptionPane.showMessageDialog(null, "添加成功");doDefaultCloseAction();}}}class NumberListener extends KeyAdapter {public void keyTyped(KeyEvent e) {String numStr="0123456789."+(char)8;if(numStr.indexOf(e.getKeyChar())<0){e.consume();}}}}BookModiAndDelIFrame.java //图书信息修改与删除package com.zhang.iframe;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.SystemColor;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.sql.Date;import java.text.SimpleDateFormat;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.swing.DefaultComboBoxModel;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFormattedTextField;import javax.swing.JInternalFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.SwingConstants;import javax.swing.border.EmptyBorder;import javax.swing.border.LineBorder;import javax.swing.table.DefaultTableModel;import com.zhang.util.Item;import com.zhang.util.MapPz;import com.zhang.dao.Dao;import com.zhang.model.BookInfo;import com.zhang.model.BookType;import com.zhang.util.CreateIcon;import com.zhang.util.MyDocument;/*** 名称:图书修改窗体**/public class BookModiAndDelIFrame extends JInternalFrame { private JTable table;private JFormattedTextField price;private JFormattedTextField pubDate;private JTextField translator;private JTextField publisher;private JTextField writer;private JTextField ISBN;private JTextField bookName;private JComboBox bookType;DefaultComboBoxModel bookTypeModel;private Item item;Map map=new HashMap();private String[] columnNames;private Map m=MapPz.getMap();//取数据库中图书相关信息放入表格中private Object[][] getFileStates(List list){String[] columnNames = { "图书编号", "图书类别", "图书名称", "作者", "译者", "出版商","出版日期", "价格" };Object[][]results=new Object[list.size()][columnNames.length];for(int i=0;i<list.size();i++){BookInfo bookinfo=(BookInfo)list.get(i);results[i][0]=bookinfo.getISBN();Stringbooktypename=String.valueOf(MapPz.getMap().get(bookinfo.getTypeid()));results[i][1]=booktypename;results[i][2]=bookinfo.getBookname();results[i][3]=bookinfo.getWriter();results[i][4]=bookinfo.getTranslator();results[i][5]=bookinfo.getPublisher();results[i][6]=bookinfo.getDate();results[i][7]=bookinfo.getPrice();}return results;}public BookModiAndDelIFrame() {super();final BorderLayout borderLayout = new BorderLayout();getContentPane().setLayout(borderLayout);setIconifiable(true);setClosable(true);setTitle("图书信息修改与删除");setBounds(100, 100, 640, 406);//移动组件并调整其大小。

相关文档
最新文档