java图书管理系统代码

合集下载

java实现简单的图书管理系统

java实现简单的图书管理系统

java实现简单的图书管理系统本⽂实例为⼤家分享了java实现简单的图书管理系统的具体代码,供⼤家参考,具体内容如下⼀、项⽬分布Book类: 定义了书的⼀些属性(书名,作者,价格,分类,状态)并且写了属性的get、set⽅法Library类: 写了登录函数(1、普通⽤户,2、管理员,3、退出系统),Person类:定义的⼈的属性(姓名,性别,年龄)并且写了属性的get、set⽅法,定义了⼀些书。

operate接⼝:操作的接⼝,操作⽅法:查询/查阅,删除/借阅,增加/还书,显⽰书籍列表Root类:继承了Person类,实现operate(查阅,删除,增加,显⽰书籍列表)接⼝User类:继承了Person类,实现operate(查询,借阅,还书,显⽰书籍列表)接⼝Main类:Main中的主函数开启整个项⽬。

模型图:声明:本项⽬只是⼀个简单的⾯向对象⼊门⼩项⽬,有⼀些基础理论需要掌握,⽐如对象,类,抽象类,接⼝,继承,实现,数组及数组的操作,for循环,while循环,switch语句,if语句。

⼆、代码展⽰1.Book类public class Book {private String name; //书名private String author; //作者public double price; //价格private String category; //分类private boolean state; //状态 true-未借出 false-已借出//通过构造函数给定书的属性public Book(String name,String author,double price,String category,boolean state){this.author = author; = name;this.price = price;this.category = category;this.state = state;}public Book() { //默认10本书this(10);}public Book(int i) {Person.books = new Book[i];}//属性的获取和设置public String getName() {return name;}public void setName(String name) { = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getCategory() {return category;}public void setCategory(String category) {this.category = category;}public boolean getState() {return state;}public void setState(boolean state) {this.state = state;}}2.Library类import java.util.Scanner;public class Library {Scanner sc = new Scanner(System.in);//登录函数:显⽰登录界⾯进⾏选择登录public void login() {int count = 0;Person p = null;while (count < 2) {System.out.println("===============jewel图书管理系统===============");System.out.println("欢迎讨论指正! qq505791225"+"\n");System.out.println("请登录:1.普通⽤户 2.管理员登录 3.退出系统");int n = sc.nextInt();//通过输⼊的值进⾏登录判断if (n == 3) {return;}switch (n) {case 1:System.out.println("请输⼊姓名:");String Uname = sc.next();System.out.println("请输⼊性别:");String Usex = sc.next();System.out.println("请输⼊年龄:");int Uage = sc.nextInt();p = new User(Uname,Usex,Uage); //构造普通⽤户对象System.out.println("登录成功!");System.out.println("当前普通⽤户:"+"姓名:" + p.getName() + " "+"性别:" + p.getSex() + " "+"年龄"+ p.getAge()); //普通⽤户循环操作while (true) {System.out.println("请输⼊你的操作: 1.查询书籍 2.借阅书籍 3.归还书籍 4.显⽰书籍列表 5.退出");int i = sc.nextInt();if (i == 5) {System.out.println("您已成功退出!");break;}else {p.operate(); //调⽤普通⽤户的操作⽅法}}break;case 2:System.out.println("请输⼊管理员姓名:");String Rname = sc.next();System.out.println("请输⼊性别:");String Rsex = sc.next();System.out.println("请输⼊年龄:");int Rage = sc.nextInt();p = new Root(Rname,Rsex,Rage);//构造管理员对象System.out.println("登录成功!");System.out.println("当前管理员:"+"姓名:" + p.getName() + " "+"性别:" + p.getSex() + " "+"年龄" + p.getAge()); while (true) {System.out.println("请输⼊你的操作: 1.整理书籍 2.查阅书籍 3.增加书籍 4.删除书籍 5.显⽰书籍列表 6.退出");int j = sc.nextInt();if (j == 6) {System.out.println("您已成功退出!");break;}else{p.operate();//调⽤管理员的操作⽅法}} break;}}}}3.Person类(抽象类)abstract class Person {public String name;public String sex;public int age;/*** 默认定义10本书籍。

基于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_coun t,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().eq uals("")){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,boo k_count-borrowed_count,store_address from book";String strSql=null;if(booknamet.getText().trim().equals("")&&authornamet.getText().trim().equ als("")&&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,boo k_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,boo k_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,boo k_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,boo k_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){}。

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

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

声明:本系统是基于C/S的图书管理系统,主要使用的是Oracle数据库,下面附所有实现代码packagelibrary;publicclassbook_addextendsJFrameimplementsActionListener{DataBaseManagerdb=newDataBaseManager();ResultSetrs;JPanelpanel1,panel2;JLabelbook_id_label,book_name_label,author_label,press_label,press_date_label,price_label,book_num_label,borrowed_num_label,address;JTextFieldbook_id_TextField,book_name_TextField,author_TextField,press_TextField,press_date_TextField,price_TextField,book_num_TextField,borrowed_count;JComboBoxaddresst;Containerc;JButtonclear,add,exit;publicbook_add(){super("添加图书信息");c=getContentPane();c.setLayout(newBorderLayout());book_id_label=newJLabel("编号",JLabel.CENTER);book_name_label=newJLabel("名称",JLabel.CENTER);author_label=newJLabel("作者",JLabel.CENTER);press_label=newJLabel("出版社",JLabel.CENTER);press_date_label=newJLabel("出版日期",JLabel.CENTER);price_label=newJLabel("价格",JLabel.CENTER);book_num_label=newJLabel("库存数",JLabel.CENTER);borrowed_num_label=newJLabel("已借阅数",JLabel.CENTER);address=newJLabel("藏书地址",JLabel.CENTER);book_id_TextField=newJTextField(15);book_name_TextField=newJTextField(15);author_TextField=newJTextField(15);press_TextField=newJTextField(15);press_date_TextField=newJTextField(15);price_TextField=newJTextField(15);book_num_TextField=newJTextField(15);borrowed_count=newJTextField(15);borrowed_count.setText("0");addresst=newJComboBox();addresst.addItem("扬子津图书馆");addresst.addItem("荷花池图书馆");addresst.addItem("瘦西湖图书馆");addresst.addItem("淮海路图书馆");panel1=newJPanel();panel1.setLayout(newGridLayout(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=newJPanel();panel2.setLayout(newGridLayout(1,3));clear=newJButton("清空");clear.addActionListener(this);add=newJButton("添加");add.addActionListener(this);exit=newJButton("退出");exit.addActionListener(this);panel2.add(clear);panel2.add(add);panel2.add(exit);c.add(panel1,BorderLayout.CENTER);c.add(panel2,BorderLayout.SOUTH);setVisible(true);}publicvoidactionPerformed(ActionEvente) {if(e.getSource()==exit){this.dispose();}elseif(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("");}elseif(e.getSource()==add){if(book_id_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null,"书号不能为空");}elseif(book_name_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null,"书名不能为空");}elseif(author_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null,"作者不能为空");}elseif(press_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null,"出版社不能为空");}elseif(press_date_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null,"出版日期不能为空");}elseif(price_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null,"价格不能为空");}elseif(book_num_TextField.getText().trim().equals("")){JOptionPane.showMessageDialog(null,"库存不能为空");}elseif(borrowed_count.getText().trim().equals("")){JOptionPane.showMessageDialog(null,"借阅数不能为空");}else{try{StringstrSQL="insertintobook(book_id,book_name,press,author,press_date,price,book_count,borrow ed_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(Exceptionex){}}}}}packagelibrary;importjavax.swing.*;importjava.awt.*;publicclassbook_deleteextendsJFrameimplementsActionListener{DataBaseManagerdb=newDataBaseManager();ResultSetrs;Containerc;JLabelTipLabel=newJLabel("请选择要删除的书名",JLabel.CENTER); JComboBoxbb=newJComboBox();JButtonyes,exit;JPanelpanel1=newJPanel();publicbook_delete(){super("删除图书信息");c=getContentPane();c.setLayout(newBorderLayout());try{StringstrSQL="selectbook_namefrombookwherebook_count>borrowed_count";rs=db.getResult(strSQL);while(rs.next()){bb.addItem(rs.getString(1));}}catch(SQLExceptionsqle){}catch(Exceptionex){}c.add(TipLabel,BorderLayout.NORTH);c.add(bb,BorderLayout.CENTER);yes=newJButton("确定");exit=newJButton("退出");yes.addActionListener(this);exit.addActionListener(this);panel1.add(yes);panel1.add(exit);c.add(panel1,BorderLayout.SOUTH);setVisible(true);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==exit){this.dispose();}elseif(e.getSource()==yes){try{StringstrSQL="selectborrowed_countfrombookwherebook_name='"+bb.getSelectedItem()+"'";rs=db.getResult(strSQL);if(!rs.first()){JOptionPane.showMessageDialog(null,"书库里没有你要删除的书");}else{StringstrSql="deletefrombookwherebook_name='"+bb.getSelectedItem()+"'andborrowed_count=0";rs.first();intcount=rs.getInt(1);if(!(count==0)){JOptionPane.showMessageDialog(null,"此书还有学生没有还,不可删除");}elseif(db.updateSql(strSql)){JOptionPane.showMessageDialog(null,"删除成功");db.closeConnection();this.dispose();}else{JOptionPane.showMessageDialog(null,"删除失败");db.closeConnection();this.dispose();}}}catch(SQLExceptionsqle){}catch(Exceptionex){}}}}packagelibrary;publicclassbook_modifyextendsJFrameimplementsActionListener{DataBaseManagerdb=newDataBaseManager();ResultSetrs;JPanelpanel1,panel2,panel3;JLabelTipLabel=newJLabel("输入书名点确定,将调出此书的相关信息");JLabelbook_name_label,author_label,press_label,press_date_label,price_label;JTextFieldbook_name_TextField,author_TextField,press_TextField,press_date_TextField,price_TextField;Containerc;JButtonclear,yes,update,exit;publicbook_modify(){super("修改图书信息");c=getContentPane();c.setLayout(newBorderLayout());panel3=newJPanel();panel3.add(TipLabel);c.add(panel3,BorderLayout.NORTH);book_name_label=newJLabel("名称",JLabel.CENTER);author_label=newJLabel("作者",JLabel.CENTER);press_label=newJLabel("出版社",JLabel.CENTER);press_date_label=newJLabel("出版日期",JLabel.CENTER);price_label=newJLabel("价格",JLabel.CENTER);book_name_TextField=newJTextField(15);author_TextField=newJTextField(15);press_TextField=newJTextField(15);press_date_TextField=newJTextField(15);price_TextField=newJTextField(15);panel1=newJPanel();panel1.setLayout(newGridLayout(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=newJPanel();panel2.setLayout(newGridLayout(1,4));clear=newJButton("清空");yes=newJButton("确定");update=newJButton("更新");exit=newJButton("退出");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);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==exit){this.dispose();;}elseif(e.getSource()==clear){book_name_TextField.setText("");author_TextField.setText("");press_TextField.setText("");press_date_TextField.setText("");price_TextField.setText("");}elseif(e.getSource()==yes){try{StringstrSQL="select*frombookwherebook_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(NullPointerExceptionupe){}catch(Exceptiones){}}elseif(e.getSource()==update){try{StringstrSQL="updatebooksetbook_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()+"'wherebook_name='"+book_name_TextField.getText().trim()+"'" ;if(db.updateSql(strSQL)){this.dispose();JOptionPane.showMessageDialog(null,"更新图书成功");}else{JOptionPane.showMessageDialog(null,"更新图书失败");}db.closeConnection();}catch(Exceptionsqle){}}}}packagelibrary; publicclassbookborrowextendsJFrameimplementsActionListener{DataBaseManagerdb=newDataBaseManager();ResultSetrs;Containerc;JPanelpanel1,panel2;JLabelborrowname,bookname,borrowdate,returndate,is_return_label;JTextFieldborrowdateField,returndateField,is_return;JButtonclear,yes,cancel;JComboBoxborrownameBox=newJComboBox();JComboBoxbooknameBox=newJComboBox();publicbookborrow(){super("书籍出借");c=getContentPane();c.setLayout(newBorderLayout());Calendarcal=Calendar.getInstance();intyear,month,day;// year=cal.get(Calendar.YEAR);// month=cal.get(Calendar.MONTH)+3;//从0开始的// day=cal.get(Calendar.DAY_OF_MONTH);//Stringcdate=sdf.format(cal.getTime());//Stringda=Integer.toString(year)+"-0"+Integer.toString(month)+"-"+Integer.toString(day);borrowname=newJLabel("借阅者姓名",JLabel.CENTER);bookname=newJLabel("书名",JLabel.CENTER);borrowdate=newJLabel("借书日期",JLabel.CENTER);// returndate=newJLabel("应还日期",JLabel.CENTER);is_return_label=newJLabel("是否归还",JLabel.CENTER);borrowdateField=newJTextField(15);// borrowdateField.setText(cdate);// returndateField=newJTextField(15);// returndateField.setText(da);is_return=newJTextField(15);is_return.setText("否");try{StringstrSql="selectstudent_namefromreader";rs=db.getResult(strSql);while(rs.next()){borrownameBox.addItem(rs.getString(1));}}catch(SQLExceptionsqle){}catch(Exceptionex){}try{StringstrSQL="selectbook_namefrombookwherebook_count>borrowed_count";rs=db.getResult(strSQL);while(rs.next()){booknameBox.addItem(rs.getString(1));}}catch(SQLExceptionsqle){}catch(Exceptionex){}panel1=newJPanel();panel1.setLayout(newGridLayout(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=newJPanel();panel2.setLayout(newGridLayout(1,3));clear=newJButton("清空");yes=newJButton("确定");cancel=newJButton("取消");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);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==cancel){this.dispose();}elseif(e.getSource()==clear){borrowdateField.setText("");// returndateField.setText("");is_return.setText("");}elseif(e.getSource()==yes){if(borrownameBox.getSelectedItem().equals("")){JOptionPane.showMessageDialog(null,"对不起,没有读者借阅");}elseif(booknameBox.getSelectedItem().equals("")){JOptionPane.showMessageDialog(null,"对不起,现在书库没有书");}else{try{//系统计算归还日期//获取输入的借阅日期,自动加两个月StringstartDate=borrowdateField.getText().trim();SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd");DatedateStart=format.parse(startDate);Calendarcd=Calendar.getInstance();cd.setTime(dateStart);cd.add(Calendar.MONTH,2);StringreturnDate=format.format(cd.getTime());StringstrSQL="insertintoborrow(student_name,book_name,borrow_date,return_date,is_returned)valu es('"+borrownameBox.getSelectedItem()+"','"+booknameBox.getSelectedItem()+"','"+borrowdateField.getText().trim()+"','"+returnDate+"','"+is_return.getText().trim()+"')";if(db.updateSql(strSQL)){JOptionPane.showMessageDialog(null,"借阅完成");strSQL="updatereadersetborrow_count=borrow_count+1wherestudent_name='"+borrownameBox.ge tSelectedItem()+"'";db.updateSql(strSQL);strSQL="updatebooksetborrowed_count=borrowed_count+1wherebook_name='"+booknameBox.get SelectedItem()+"'";db.updateSql(strSQL);db.closeConnection();this.dispose();}else{JOptionPane.showMessageDialog(null,"借阅失败");db.closeConnection();this.dispose();}}catch(Exceptionse){}}}}}packagelibrary;importjavax.swing.*;importjava.awt.*; publicclassbookborrowlistextendsJFrameimplementsActionListener{DataBaseManagerdb=newDataBaseManager();ResultSetrs;Containerc;JPanelpanel1,panel2;JLabelbookname,studentname;JTextFieldbooknamet,studentnamet;JButtonsearch,exit;JTabletable=null;DefaultTableModeldefaultModel=null;publicbookborrowlist(){super("借阅列表");c=getContentPane();c.setLayout(newBorderLayout());bookname=newJLabel("书名",JLabel.CENTER);studentname=newJLabel("人名",JLabel.CENTER);booknamet=newJTextField(15);studentnamet=newJTextField(15);search=newJButton("查询");exit=newJButton("退出");search.addActionListener(this);exit.addActionListener(this);Boxbox1=Box.createHorizontalBox();box1.add(studentname);box1.add(studentnamet);box1.add(search);Boxbox2=Box.createHorizontalBox();box2.add(bookname);box2.add(booknamet);box2.add(exit);BoxboxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(Box.createVerticalGlue());panel1=newJPanel();panel1.add(boxH);panel2=newJPanel();String[]name={"读者","书名","借阅时间","应还时间","是否归还"};String[][]data=newString[0][0];defaultModel=newDefaultTableModel(data,name);table=newJTable(defaultModel);table.setPreferredScrollableViewportSize(newDimension(400,80));JScrollPanes=newJScrollPane(table);panel2.add(s);c.add(panel1,BorderLayout.NORTH);c.add(panel2,BorderLayout.SOUTH);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==exit){db.closeConnection();this.dispose();}elseif(e.getSource()==search){StringstrSQL="selectstudent_name,book_name,borrow_date,return_date,is_returnedfromborrow";StringstrSql=null;if(studentnamet.getText().trim().equals("")&&booknamet.getText().trim().equals("")){strSql=strSQL;}elseif(studentnamet.getText().trim().equals("")){strSql="selectstudent_name,book_name,borrow_date,return_date,is_returnedfromborrowwherebook_ name='"+booknamet.getText().trim()+"'";}elseif(booknamet.getText().trim().equals("")){strSql="selectstudent_name,book_name,borrow_date,return_date,is_returnedfromborrowwherestude nt_name='"+studentnamet.getText().trim()+"'";}else{strSql="selectstudent_name,book_name,borrow_date,return_date,is_returnedfromborrowwherestude nt_name='"+studentnamet.getText().trim()+"'andbook_name='"+booknamet.getText().trim()+"'";JOptionPane.showMessageDialog(null,"你借的书还还有7天超期");}try{introwCount=defaultModel.getRowCount()-1;intj=rowCount;for(inti=0;i<=rowCount;i++){defaultModel.removeRow(j);defaultModel.setRowCount(j);j=j-1;}rs=db.getResult(strSql);while(rs.next()){VectorinsertRow=newVector();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(SQLExceptionsqle){}catch(Exceptionex){}}}}packagelibrary;importjavax.swing.*;importjava.awt.*; publicclassbookborrowModifyextendsJFrameimplementsActionListener{DataBaseManagerdb=newDataBaseManager();ResultSetrs;JPanelpanel1,panel2,panel3;Containerc;JLabeltiplabel=newJLabel("输入借阅者姓名和书名单击确定,将调出此书的相关信息");JLabelborrowlabel,namelabel,borrowdate;JTextFieldborrowField,nameField,dateField;JButtonclear,yes,update,cancel;publicbookborrowModify(){super("修改图书出借信息");c=getContentPane();c.setLayout(newBorderLayout());panel3=newJPanel();panel3.add(tiplabel);c.add(panel3,BorderLayout.NORTH);borrowlabel=newJLabel("借阅者姓名",JLabel.CENTER);namelabel=newJLabel("书名",JLabel.CENTER);borrowdate=newJLabel("借书日期",JLabel.CENTER);borrowField=newJTextField(15);nameField=newJTextField(15);dateField=newJTextField(15);panel1=newJPanel();panel1.setLayout(newGridLayout(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=newJPanel();panel2.setLayout(newGridLayout(1,4));clear=newJButton("清空");yes=newJButton("确定");update=newJButton("更新");cancel=newJButton("取消");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);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==clear){borrowField.setText("");nameField.setText("");dateField.setText("");}elseif(e.getSource()==cancel){this.dispose();}elseif(e.getSource()==yes){try{StringstrSQL="selectstudent_name,book_name,borrow_datefromborrowwherestudent_name='"+borrowField.getText().trim()+"'andbook_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(Exceptionex){}}elseif(e.getSource()==update){StringstrSQL="updateborrowsetborrow_date='"+dateField.getText().trim()+"'wherestudent_name='"+borrowField.getText().trim()+"'andbook_name='"+nameField.getText().trim()+"'";if(db.updateSql(strSQL)){JOptionPane.showMessageDialog(null,"更新成功");db.closeConnection();this.dispose();}else{JOptionPane.showMessageDialog(null,"更新失败");db.closeConnection();this.dispose();}}}}packagelibrary;importjavax.swing.*;importjava.awt.*;publicclassbooklistextendsJFrameimplementsActionListener{DataBaseManagerdb=newDataBaseManager();ResultSetrs;Containerc;JPanelpanel1,panel2,panel3;JLabelbookname,authorname,press;JTextFieldbooknamet,authornamet,presst;JButtonsearch,exit;JTabletable=null;DefaultTableModeldefaultModel=null;publicbooklist(){super("书籍信息查询");c=getContentPane();c.setLayout(newBorderLayout());bookname=newJLabel("书名",JLabel.CENTER);authorname=newJLabel("作者",JLabel.CENTER);press=newJLabel("出版社",JLabel.CENTER);booknamet=newJTextField(15);authornamet=newJTextField(15);presst=newJTextField(15);search=newJButton("查询");exit=newJButton("退出");search.addActionListener(this);exit.addActionListener(this);panel1=newJPanel();panel1.add(bookname);panel1.add(booknamet);panel1.add(authorname);panel1.add(authornamet);panel2=newJPanel();panel2.add(press);panel2.add(presst);panel2.add(search);panel2.add(exit);String[]name={"书号","书名","出版社","作者","出版日期","价格","图书数目","已借数目","剩余数目","藏书地址"};String[][]data=newString[0][0];defaultModel=newDefaultTableModel(data,name);table=newJTable(defaultModel);table.setPreferredScrollableViewportSize(newDimension(400,80));JScrollPanes=newJScrollPane(table);panel3=newJPanel();panel3.add(s);c.add(panel1,BorderLayout.NORTH);c.add(panel2,BorderLayout.CENTER);c.add(panel3,BorderLayout.SOUTH);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==exit){db.closeConnection();this.dispose();}elseif(e.getSource()==search){StringstrSQL="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count, book_count-borrowed_count,store_addressfrombook";StringstrSql=null;if(booknamet.getText().trim().equals("")&&authornamet.getText().trim().equals("")&&presst.getTex t().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_c ount-borrowed_count,store_addressfrombookwherepress='"+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_c ount-borrowed_count,store_addressfrombookwherebook_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_c ount-borrowed_count,store_addressfrombookwhereauthor='"+authornamet.getText().trim()+"'";}else{strSql="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_c ount-borrowed_count,store_addressfrombookwherebook_name='"+booknamet.getText().trim()+"'andauthor='"+authornamet.getText().trim()+"'andpress='"+presst.getText().trim()+"'";}try{introwCount=defaultModel.getRowCount()-1;intj=rowCount;for(inti=0;i<=rowCount;i++){defaultModel.removeRow(j);defaultModel.setRowCount(j);j=j-1;}rs=db.getResult(strSql);while(rs.next()){VectorinsertRow=newVector();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(SQLExceptionsqle){}catch(Exceptionex){}}}}packagelibrary;importjavax.swing.*;importjava.awt.*; publicclassbookreturnextendsJFrameimplementsActionListener{DataBaseManagerdb=newDataBaseManager();ResultSetrs;JPanelpanel1,panel2;Containerc;JLabelnamelabel,booklabel,returndatelabel;JTextFieldreturnField;JButtonclear,yes,cancel;JComboBoxbookname=newJComboBox();JComboBoxreadername=newJComboBox();publicbookreturn(){super("图书还入");c=getContentPane();c.setLayout(newBorderLayout());Calendarcal=Calendar.getInstance();Stringcdate=sdf.format(cal.getTime());namelabel=newJLabel("还书者姓名",JLabel.CENTER);booklabel=newJLabel("书名",JLabel.CENTER);returndatelabel=newJLabel("日期",JLabel.CENTER);returnField=newJTextField(15);returnField.setText(cdate);try{Strings="";StringstrSQL="selectstudent_namefromreaderwhereborrow_count!=0";rs=db.getResult(strSQL);while(rs.next()){readername.addItem(rs.getString(1));}}catch(SQLExceptionsqle){}catch(Exceptionex){。

用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语句完成图书信息的删除功能。

图书管理完整代码

图书管理完整代码

1.登录Login.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.Container;import java.util.*;import java.sql.*;class Login extends JFrame implements ActionListener{ Container cp=null;JFrame f=null;JButton j1,j2;JTextField t1;JPasswordField t2;JLabel jlable1,jlable2;Color c;JPanel jp1,jp2;Login(){f=new JFrame("小型图书管理系统");j1=new JButton("确定");j2=new JButton("取消");cp=f.getContentPane();jlable1=new JLabel(" 输入用户名");jlable2=new JLabel(" 用户密码");jp1=new JPanel();jp2=new JPanel();t1=new JTextField(18);t2=new JPasswordField(18);jp1.add(jlable1);jp1.add(t1);jp1.add(jlable2);jp1.add(t2);JLabel JL=new JLabel("<html><font color=#CC00FF size='7'><i> 欢迎登录</i></font>",SwingConstants.CENTER);cp.add(JL,"North");jp2.add(j1);jp2.add(j2);cp.add(jp1,"Center");cp.add("South",jp2);jp1.setBackground(new Color(255,155,255));Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*///setSize(x,y); /*让系统窗口平铺整个显示器窗口*/f.setSize(300,300);int xcenter=(x-300)/2;int ycenter=(y-300)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//-----------------------------------------------------j1.addActionListener(this);//注册事件监听器j2.addActionListener(this);f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});}public void confirm()//验证用户和密码是否存在{try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{Connectioncon=DriverManager.getConnection("jdbc:odbc:TEST","SYSTEM","SYSTEM");Statement sql=con.createStatement();String uname=t1.getText().trim();String Mima=t2.getText().trim();String queryMima="select * from YONGHU where 用户名='"+uname+"'AND 密码='"+Mima+"'";ResultSet rs=sql.executeQuery(queryMima);if(rs.next()) {new Book(uname);f.hide();con.close();}else{ JOptionPane.showMessageDialog(null,"该用户不存在","提示!",JOptionPane.YES_NO_OPTION);}t1.setText("");t2.setText("");} catch(SQLException g){ System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){confirm(); }else if(cmd.equals("取消")){f.dispose();}}public static void main(String args[]){Login a=new Login();}2.主界面Book.javaimport .*;import java.sql.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;import javax.swing.*;import javax.swing.border.*;import java.util.*;class Book extends JFrame implements ActionListener{JButton QueryScore=new JButton("图书查询");JButton QueryXuefen=new JButton("图书入库");JButton jiangfa=new JButton("图书删除");JButton xuanke=new JButton("图书概览");JButton gaiMima=new JButton("修改密码");JMenuBar mb = new JMenuBar();//菜单栏JPanel jp=new JPanel();//用来填放子模块Container cp=getContentPane();String username; Book(){}Book(String username){ ername=username;mb.add(QueryScore);mb.add(QueryXuefen);mb.add(jiangfa);mb.add(xuanke);mb.add(gaiMima);cp.add(mb,"North");// 设置边框jp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineB order(Color.blue, 2),null, TitledBorder.CENTER, TitledBorder.TOP));jp.setLayout(new BorderLayout());JLabel label1 = new JLabel(new ImageIcon("4.jpg"));jp.add(label1);/* JLabel JL=new JLabel("<html><font color=#CC00FF size='7'><i>欢迎登陆</i></font>",SwingConstants.CENTER);jp.add(JL,"North");*/JLabel label2 = new JLabel(new ImageIcon("2.jpg"));//jp.add(label2,"South");JScrollPane scrollpane=new JScrollPane(jp);cp.add(scrollpane);setTitle("欢迎登陆");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*///setSize(x,y); /*让系统窗口平铺整个显示器窗口*/setSize(600,600);int xcenter=(x-600)/2;int ycenter=(y-600)/2;setLocation(xcenter,ycenter);/*显示在窗口中央*/setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//注册临听器QueryScore.addActionListener(this);QueryXuefen.addActionListener(this);jiangfa.addActionListener(this);xuanke.addActionListener(this);gaiMima.addActionListener(this);}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if (cmd.equals("图书查询")){ new QueryBook(); }if (cmd.equals("图书入库")){ new BookIn(); }if (cmd.equals("图书删除")){ new RemoveBook(); }if (cmd.equals("图书概览")){ new BookBrower().showRecord();}if (cmd.equals("修改密码")){ new UpdateMima(username);}}public static void main(String args[]){ new Book(""); }}3.图书查询QueryBook.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.util.*;import java.awt.Container;import java.sql.*;class QueryBook implements ActionListener{JFrame f3; Container cp;JPanel jp1,jp2,jp3,jp4,jp,jpanelWest;JButton jbt1,jbt2;//按钮,确定、取消JLabel label; //标签:请输入图书号JTextField tf,tf1,tf2,tf3,tf4,tf5,tf6; //定义文本框JLabel label1,label2,label3,label4;QueryBook(){ f3=new JFrame();cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jpanelWest=new JPanel();jp=new JPanel();//------------------------------------------------jbt1=new JButton("确定");jbt2=new JButton("取消");//------------------------------------------------label=new JLabel("<html><font color=#CC00FF size='4'>请输入图书号:</font>",SwingConstants.CENTER);label.setForeground(Color.blue);tf=new JTextField(20);//------------------------------------------------tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);//------------------------------------------------//布局,添加控件JPanel jpanel=new JPanel();jpanel.add(label);jpanel.add(tf);JPanel pp4=new JPanel();JPanel jpane4=new JPanel();cp.add(jpanel,"North");JPanel pp2=new JPanel(new GridLayout(6,1));JPanel pp3=new JPanel();pp4.setLayout(new GridLayout(6,1));pp4.add(new JLabel("图书名",SwingConstants.CENTER));pp2.add(tf1);pp4.add(new JLabel("图书号",SwingConstants.CENTER));pp2.add(tf2);pp4.add(new JLabel("单价",SwingConstants.CENTER));pp2.add(tf3);pp4.add(new JLabel("作者",SwingConstants.CENTER));pp2.add(tf4);pp4.add(new JLabel("出版社",SwingConstants.CENTER));pp2.add(tf5);pp4.add(new JLabel("入库时间",SwingConstants.CENTER));pp2.add(tf6); pp3.add(jbt1); pp3.add(jbt2);cp.add(pp4,"West");cp.add(pp2,"Center");cp.add(pp3,"South");cp.add(jpane4,"East");//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*/f3.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/f3.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);/*f3.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});*/}//------------------------------------------------public void showRecord(){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{Connectioncon=DriverManager.getConnection("jdbc:odbc:TEST","SYSTEM","SYSTEM");Statement sql;String ql=tf.getText().trim();String s="select * from BOOK where 图书号 ='"+ql +"'";sql=con.createStatement();ResultSet rs=sql.executeQuery(s);if(rs.next()) {String bname=rs.getString(1);String bno=rs.getString(2);String price=rs.getString(3);String writer=rs.getString(4);String publish=rs.getString(5);String indate=rs.getString(6);tf1.setText(bname);tf2.setText(bno);tf3.setText(price);tf4.setText(writer);tf5.setText(publish);tf6.setText(indate);}else{JOptionPane.showMessageDialog(null,"您输入的图书号不存在,请重新输入","输入错误", JOptionPane.YES_NO_OPTION);}con.close();}catch(SQLException g){ System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}tf1.setEditable(false);tf2.setEditable(false);tf3.setEditable(false);tf4.setEditable(false);tf5.setEditable(false);tf6.setEditable(false);}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){ showRecord();tf.setText("");}else if(cmd.equals("取消"))f3.hide();}public static void main(String args[]){ QueryBook a=new QueryBook(); }}4.图书入库BookIn.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.util.*;import java.sql.*;import javax.swing.text.JTextComponent;//extends JFrameclass BookIn implements ActionListener{JFrame f3; Container cp;JPanel jp1,jp2,jp3,jp4,jp,jpanelWest;JButton jbt1,jbt2;//按钮:确定、取消、JLabel label; //标签JTextField tf1,tf2,tf3,tf4,tf5,tf6; //定义文本框JLabel label1,label2,label3,label4;String sno; BookIn(){f3=new JFrame();cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jpanelWest=new JPanel();jp=new JPanel();//------------------------------------------------jbt1=new JButton("确定");jbt2=new JButton("取消");//------------------------------------------------JLabel label=new JLabel("<html><font color=#CC00FF size='4'> 图书入库</font>",SwingConstants.CENTER);label.setForeground(Color.blue);//------------------------------------------------tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);//------------------------------------------------//布局,添加控件jp1.add(jbt1);jp1.add(jbt2);sno=tf4.getText();jp1.add(new JLabel("您好"+sno+"欢迎登陆学生信息系统")); JPanel jpanel=new JPanel();jpanel.add(label);JPanel pp4=new JPanel();JPanel jpane4=new JPanel();cp.add(jpanel,"North");JPanel pp2=new JPanel(new GridLayout(6,1));JPanel pp3=new JPanel();pp4.setLayout(new GridLayout(6,1));pp4.add(new JLabel("图书名",SwingConstants.CENTER)); pp2.add(tf1);pp4.add(new JLabel("图书号",SwingConstants.CENTER)); pp2.add(tf2);pp4.add(new JLabel("单价",SwingConstants.CENTER)); pp2.add(tf3);pp4.add(new JLabel("作者",SwingConstants.CENTER)); pp2.add(tf4);pp4.add(new JLabel("出版社",SwingConstants.CENTER)); pp2.add(tf5);pp4.add(new JLabel("入库时间",SwingConstants.CENTER)); pp2.add(tf6);pp3.add(jbt1);pp3.add(jbt2);cp.add(pp4,"West");cp.add(pp2,"Center");cp.add(pp3,"South");cp.add(jpane4,"East");//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*/f3.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/f3.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);/*f3.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});*/}//------------------------------------------------public void insertRecord(){if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().eq uals("")||tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals("")){JOptionPane.showMessageDialog(f3,"请填写图书资料");return;}try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{Connectioncon=DriverManager.getConnection("jdbc:odbc:TEST","SYSTEM","SYSTEM");Statement sql;String s="insert into BOOKvalues('"+tf1.getText()+"','"+tf2.getText()+"','"+tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"');";//查询输入的图书号是否在数据库中存在String query="select * from BOOK where 图书号='"+tf2.getText()+"'"; sql=con.createStatement();ResultSet rs=sql.executeQuery(query);//返回查询结果集boolean moreRecords=rs.next();//判断结果集是否有数据if(moreRecords){ JOptionPane.showMessageDialog(f3,"图书号已经被使用,请重新输入"); con.close();tf2.setText("");}int insert=sql.executeUpdate(s);if(insert==1){ JOptionPane.showMessageDialog(null,"图书信息录入成功!");tf1.setText("");tf2.setText("");tf3.setText("");tf4.setText("");tf5.setText("");tf6.setText("");}}catch(SQLException g){ System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){ insertRecord(); }else if(cmd.equals("取消"))f3.hide();}public static void main(String args[]){ BookIn a=new BookIn(); }}5.图书删除RemoveBook.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.util.*;import java.awt.Container ;import java.sql.*;class RemoveBook implements ActionListener{JFrame f;Container cp;JPanel jpS,jpanelWest;JButton jbt1,jbt2,jbt3;//按钮,查询、取消、修改JLabel label,L; //标签:请输入图书名JTextField tf; //定义文本框JTable table;//用来接收数据库中返回的信息Object columnName[]={"图书名","图书号","单价","作者","出版社","入库时间"}; Object ar[][] =new Object[80][6];String sno;String count="xx";RemoveBook(){f=new JFrame();cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框jpS=new JPanel();jpanelWest=new JPanel();//------------------------------------------------jbt1=new JButton("查询");jbt2=new JButton("取消");jbt3=new JButton("删除");//------------------------------------------------label=new JLabel("<html><font color=#CC00FF size='4'>请输入要删除的图书名:</font>",SwingConstants.CENTER);label.setForeground(Color.blue);L=new JLabel("该种图书共有"+count+"本");//------------------------------------------------table=new JTable(ar,columnName);//ar 存放表中的数据,columnname 表示列名JScrollPane scrollpane = new JScrollPane(table);//------------------------------------------------tf=new JTextField(18);//------------------------------------------------//布局,添加控件jpS.add(jbt1);jpS.add(jbt2);jpS.add(jbt3);JPanel jpanel=new JPanel();jpanel.add(label);jpanel.add(tf);JPanel pp4=new JPanel();JPanel jpE=new JPanel();cp.add(jpanel,"North");JPanel jp=new JPanel();//jp.add(scrollpane);JPanel p=new JPanel();//用来放两个表p.setLayout(new BorderLayout());p.add(L,"North");p.add(scrollpane);cp.add(pp4,"West");cp.add(p,"Center");cp.add(jpS,"South");cp.add(jpE,"East");//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*/f.setSize(400,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);jbt3.addActionListener(this);/*f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}}}//------------------------------------------------int i=0;public void showRecord(String ql){while(i>=0){ ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{Connectioncon=DriverManager.getConnection("jdbc:odbc:TEST","SYSTEM","SYSTEM"); Statement sql;String s="select * from BOOK where 图书名 ='"+ql +"'";sql=con.createStatement();ResultSet rs=sql.executeQuery(s);while(rs.next()){String bname=rs.getString(1);String bno=rs.getString(2);String price=rs.getString(3);String writer=rs.getString(4);String publish=rs.getString(5);String indate=rs.getString(6);ar[i][0]=bname;ar[i][1]=bno;ar[i][2]=price;ar[i][3]=writer;ar[i][4]=publish;ar[i][5]=indate;i++;}count=""+i+"";L.setText("该种图书共有"+count+"本");f.repaint();con.close();System.out.println(ar[0][1]);}catch(SQLException g){ System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}public void deleteRecord(int index)try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{Connectioncon=DriverManager.getConnection("jdbc:odbc:TEST","SYSTEM","SYSTEM");Statement sql;String ql=(String)(ar[index][1]);String s="delete * from BOOK where 图书号 ='"+ql +"'";sql=con.createStatement();int del=sql.executeUpdate(s);if(del==1){JOptionPane.showMessageDialog(null,"删除成功!","信息", JOptionPane.YES_NO_OPTION);}con.close();f.repaint();}catch(SQLException g){System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}public void actionPerformed(ActionEvent e){String remember="";String ql="";String cmd=e.getActionCommand();if(cmd.equals("查询")){ql=tf.getText().trim();remember=ql;showRecord(ql);}if(cmd.equals("删除")){int index=table.getSelectedRow();if( index==-1)JOptionPane.showMessageDialog(null,"请选定要删除的表格行","输入错误", JOptionPane.YES_NO_OPTION);else {deleteRecord(index);//showRecord(remember);}}if(cmd.equals("取消"))f.hide();}public static void main(String args[]){ RemoveBook a=new RemoveBook(); }}6.图书概览BookBrower.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.util.*;import java.awt.Container;import java.sql.*;class BookBrower implements ActionListener{JFrame f;Container cp;JPanel jpS,jpanelWest;JButton jbt1,jbt2;//按钮,查询、取消、修改JLabel label,L; //标签//定义文本框JTable table;//用来接收数据库中返回的信息Object columnName[]={"图书名","图书号","单价","作者","出版社","入库时间"}; Object ar[][] =new Object[80][6];String sno;String count="xx";BookBrower(){f=new JFrame();cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框jpS=new JPanel();jpanelWest=new JPanel();//------------------------------------------------jbt1=new JButton("确定");jbt2=new JButton("返回");//------------------------------------------------JLabel label=new JLabel("<html><font color=#CC00FF size='4'> 图书概览</font>",SwingConstants.CENTER);label.setForeground(Color.blue);L=new JLabel("书库现在共有图书"+count+"本");//------------------------------------------------table=new JTable(ar,columnName);//ar 存放表中的数据,columnname 表示列名 JScrollPane scrollpane = new JScrollPane(table);//------------------------------------------------//布局,添加控件jpS.add(jbt1);jpS.add(jbt2);JPanel jpanel=new JPanel();jpanel.add(label);JPanel pp4=new JPanel();JPanel jpE=new JPanel();cp.add(jpanel,"North");JPanel jp=new JPanel();//jp.add(scrollpane);JPanel p=new JPanel();//用来放两个表p.setLayout(new BorderLayout());p.add(L,"North");p.add(scrollpane);cp.add(pp4,"West");cp.add(p,"Center");cp.add(jpS,"South");cp.add(jpE,"East");//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*/f.setSize(400,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);/* f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});*/}//------------------------------------------------int i=0;public void showRecord(){while(i>=0){ ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{Connectioncon=DriverManager.getConnection("jdbc:odbc:TEST","SYSTEM","SYSTEM"); String s="select * from BOOK ";Statement sql=con.createStatement();ResultSet rs=sql.executeQuery(s);while(rs.next()){String bname=rs.getString(1);String bno=rs.getString(2);String price=rs.getString(3);String writer=rs.getString(4);String publish=rs.getString(5);String indate=rs.getString(6);ar[i][0]=bname;ar[i][1]=bno;ar[i][2]=price;ar[i][3]=writer;ar[i][4]=publish;ar[i][5]=indate;i++;}count=""+i+"";L.setText("书库现在共有图书"+count+"本");f.repaint();con.close();}catch(SQLException g){ System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){ f.hide(); }if(cmd.equals("返回"))f.hide();}public static void main(String args[]){ BookBrower a=new BookBrower();a.showRecord();}}7.密码修改UpdateMima.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.util.*;import java.awt.Container ;import java.sql.*;class RemoveBook implements ActionListener{JFrame f;Container cp;JPanel jpS,jpanelWest;JButton jbt1,jbt2,jbt3;//按钮,查询、取消、修改JLabel label,L; //标签:请输入图书名JTextField tf; //定义文本框JTable table;//用来接收数据库中返回的信息Object columnName[]={"图书名","图书号","单价","作者","出版社","入库时间"}; Object ar[][] =new Object[80][6];String sno;String count="xx";RemoveBook(){f=new JFrame();cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框jpS=new JPanel();jpanelWest=new JPanel();//------------------------------------------------jbt1=new JButton("查询");jbt2=new JButton("取消");jbt3=new JButton("删除");//------------------------------------------------label=new JLabel("<html><font color=#CC00FF size='4'>请输入要删除的图书名:</font>",SwingConstants.CENTER);label.setForeground(Color.blue);L=new JLabel("该种图书共有"+count+"本");//------------------------------------------------table=new JTable(ar,columnName);//ar 存放表中的数据,columnname 表示列名JScrollPane scrollpane = new JScrollPane(table);//------------------------------------------------tf=new JTextField(18);//------------------------------------------------//布局,添加控件jpS.add(jbt1);jpS.add(jbt2);jpS.add(jbt3);JPanel jpanel=new JPanel();jpanel.add(label);jpanel.add(tf);JPanel pp4=new JPanel();JPanel jpE=new JPanel();cp.add(jpanel,"North");JPanel jp=new JPanel();//jp.add(scrollpane);JPanel p=new JPanel();//用来放两个表p.setLayout(new BorderLayout());p.add(L,"North");p.add(scrollpane);cp.add(pp4,"West");cp.add(p,"Center");cp.add(jpS,"South");cp.add(jpE,"East");//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*/f.setSize(400,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);jbt3.addActionListener(this);/*f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});*/}//------------------------------------------------int i=0;public void showRecord(String ql){while(i>=0){ ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{Connectioncon=DriverManager.getConnection("jdbc:odbc:TEST","SYSTEM","SYSTEM"); Statement sql;String s="select * from BOOK where 图书名 ='"+ql +"'";sql=con.createStatement();ResultSet rs=sql.executeQuery(s);。

图书管理系统源码(java实现)

图书管理系统源码(java实现)

【图书管理系统】【MainPro包】1.系统登录页面public class Login extends Frame {private static final long serialVersionUID = -1758475247807861408L;TextField text_user;TextField text_pass;public Login() {1 this.setTitle("登录");this.setLayout(null);//默认流式布局this.setSize(260, 170);/* 定义标签与文本框*/Label lbUser = new Label("用户名:");text_user = new TextField();Label lbPass = new Label("密码:");text_pass = new TextField();Button btn_ok = new Button("确定");Button btn_cancel = new Button("取消");lbUser.setBounds(40, 53, 60, 20);//x,y,width,heightlbPass.setBounds(40, 83, 60, 20);text_user.setBounds(100, 50, 120, 20);text_pass.setBounds(100, 80, 120, 20);btn_ok.setBounds(45, 120, 80, 25); // 确定按钮btn_cancel.setBounds(135, 120, 80, 25); // 取消按钮/* 添加标签与文本框*/add(lbUser);add(lbPass);add(text_user);add(text_pass);add(btn_ok);add(btn_cancel);setLocationRelativeTo(null); // 使窗体在屏幕上居中放置this.setVisible(true); // 使窗体可见btn_ok.addActionListener((new ActionListener() {public void actionPerformed(ActionEvent e) {btn_okActionPerformed(e);//自定义确定按钮触发的实施过程}}));btn_cancel.addActionListener((new ActionListener() {public void actionPerformed(ActionEvent e) {DbOp.Close(); // 关闭数据库System.exit(0);}}));this.addWindowListener(new WindowAdapter() {/* 关闭窗口*/// 重写windowClosing()方法public void windowClosing(WindowEvent e) {DbOp.Close(); // 关闭数据库System.exit(0);} }); }public void btn_okActionPerformed(ActionEvent e) {String user = text_user.getText();String pass = text_pass.getText();String is_admin;// 如果用户名或密码任一为空,则终止后续操作if (user.equals("")||pass.equals("")) {JOptionPane.showMessageDialog(null, "用户名或密码不能为空!");return;}try {// 核对用户名和密码String sql = "select * from user where username=" + "'" + user + "' and password=" + "'" + pass + "'";ResultSet rs = DbOp.executeQuery(sql);// 如果此用户存在,则记录其状态(否:不是管理员,是:是管理员)if (rs.next()) {is_admin = rs.getString("is_admin");} else {JOptionPane.showMessageDialog(null, "用户名或密码不正确!");return;}GlobalVar.login_user = user; // 记录登录的用户名ShowMain show = new ShowMain(); // 调用主程序// 只有管理员才能使用"基础管理"和"借阅管理"菜单show.setRights(is_admin);// 释放窗体及其全部组件的屏幕资源,即使释放登录窗体dispose(); // 释放当前窗体} catch (SQLException e1) {JOptionPane.showMessageDialog(null, "用户数据库有误!");}}}2.系统首页页面public class ShowMain extends Frame {private static final long serialVersionUID = 5003296786441785470L;MenuBar menuBar;Menu jcwh, jcwh_book, jcwh_reader;//基础维护:图书维护、读者维护Menu jywh, cxgl, xtgl;//借阅维护、查询管理、系统管理MenuItemjcwh_book_add,jcwh_book_update,jcwh_book_delete,jcwh_reader_add,jcwh_reader_update,jcwh_reader_delete;MenuItem jywh_borrow, jywh_back;MenuItem cxgl_book, cxgl_reader;MenuItem xtgl_update_pass, xtgl_exit;public void setRights(String rights) {// 如果不是管理员,则禁止用户维护图书信息和读者信息以及禁止进行借阅管理,即只能查询if (rights.equals("否")) {jywh.setEnabled(false);jcwh.setEnabled(false);}}public ShowMain() {setTitle("图书管理系统");setLayout(new BorderLayout());setSize(640, 480);menuBar = new MenuBar();jcwh = new Menu("基础维护");// 基础维护菜单jcwh_book = new Menu("图书维护");// 图书维护菜单jcwh_book_add = new MenuItem("添加");// 添加图书菜单jcwh_book_update = new MenuItem("修改");// 修改图书菜单jcwh_book_delete = new MenuItem("删除");// 删除图书菜单jcwh_reader = new Menu("读者维护");// 读者维护菜单jcwh_reader_add = new MenuItem("添加读者");// 添加读者菜单jcwh_reader_update = new MenuItem("修改读者");jcwh_reader_delete = new MenuItem("删除读者");jywh = new Menu("借阅管理");jywh_borrow = new MenuItem("借书管理");jywh_back = new MenuItem("还书管理");cxgl = new Menu("查询管理");cxgl_book = new MenuItem("图书查询");cxgl_reader = new MenuItem("读者查询");xtgl = new Menu("系统管理");xtgl_update_pass = new MenuItem("修改密码");xtgl_exit = new MenuItem("退出系统");// 添加图书菜单jcwh_book.add(jcwh_book_add);jcwh_book.add(jcwh_book_update);jcwh_book.add(jcwh_book_delete);jcwh.add(jcwh_book);jcwh_reader.add(jcwh_reader_add);jcwh_reader.add(jcwh_reader_update);jcwh_reader.add(jcwh_reader_delete);jcwh.add(jcwh_reader);jywh.add(jywh_borrow);jywh.add(jywh_back);cxgl.add(cxgl_book);cxgl.add(cxgl_reader);xtgl.add(xtgl_update_pass);xtgl.add(xtgl_exit);menuBar.add(jcwh);menuBar.add(jywh);menuBar.add(cxgl);menuBar.add(xtgl);setMenuBar(menuBar);setLocationRelativeTo(null); // 使窗体在屏幕上居中放置setVisible(true); // 使窗体可见jcwh_book_add.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new BookManeger("save");} });jcwh_book_update.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new BookManeger("update");} });jcwh_book_delete.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new BookManeger("delete");} });jcwh_reader_add.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new ReaderManeger("save");} });jcwh_reader_update.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new ReaderManeger("update");} });jcwh_reader_delete.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new ReaderManeger("delete");} });jywh_borrow.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new Borrow();} });jywh_back.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new Back();} });cxgl_book.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new BookQuery();} });cxgl_reader.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new ReaderQuery();} });xtgl_update_pass.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new UpdatePassword();} });xtgl_exit.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {DbOp.Close(); // 关闭数据库System.exit(0);}});this.addWindowListener(new WindowAdapter() {/* 关闭窗口*/// 重写windowClosing()方法public void windowClosing(WindowEvent e) {DbOp.Close(); // 关闭数据库System.exit(0);}});}}3.图书管理public class BookManeger extends JFrame {private static final long serialVersionUID = 377287301994613384L;private Label lbbookid_c = new Label("图书编号");private TextField tf_bookid_c = new TextField();private Label lbbookid = new Label("图书编号");private TextField tf_bookid = new TextField();private Label lbbookname = new Label("图书名称");private TextField tf_bookname = new TextField();private Label lbbooktype = new Label("图书类别");private Choice tf_booktype = new Choice();private Label lbauthor = new Label("作者");private TextField tf_author = new TextField();private Label lbtranslator = new Label("译者");private TextField tf_translator = new TextField();private Label lbpublisher = new Label("出版社");private TextField tf_publisher = new TextField();private Label lbpublish_time = new Label("出版时间");private TextField tf_publish_time = new TextField();private Label lbprice = new Label("定价");private TextField tf_price = new TextField();private Label lbstock = new Label("库存数量");private TextField tf_stock = new TextField();private Button queryBtn = new Button("查询");private Button saveBtn = new Button("保存");private Button closeBtn = new Button("关闭");private String optionStr;BookManeger(String str) {optionStr = str;ggFrame(optionStr);saveBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {HashMap<String, Object> map = new HashMap<String, Object>();map.put("bookid", tf_bookid);map.put("bookname", tf_bookname);map.put("booktype", tf_booktype);map.put("author", tf_author);map.put("translator", tf_translator);map.put("publisher", tf_publisher);map.put("publish_time", tf_publish_time);map.put("price", tf_price);map.put("stock", tf_stock);int i ;if(optionStr.equals("delete")){i = Jcwh.btn_delActionPerformed(e, map);}else{i = Jcwh.btn_saveActionPerformed(e, map,optionStr);}if (i == 1) {String showInfo = "";if(optionStr.equals("save")){showInfo = "图书添加成功!";}else if(optionStr.equals("update")){showInfo = "图书修改成功!";}else if(optionStr.equals("delete")){showInfo = "图书删除成功!";}JOptionPane.showMessageDialog(null, showInfo);// 清空全部文本框clearAllTextfield();}}});closeBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {dispose(); // 释放当前窗体}});/* 关闭窗口*/this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) { // 关闭当前窗口dispose(); // 释放当前窗体}});}private void ggFrame(String str) {setLayout(null);setSize(500, 320);lbbookid.setBounds(50, 40, 50, 20); // 图书编号tf_bookid.setBounds(110, 40, 100, 20);lbbookname.setBounds(240, 40, 50, 20); // 图书名称tf_bookname.setBounds(300, 40, 100, 20);lbbooktype.setBounds(50, 80, 50, 20); // 图书类别tf_booktype.setBounds(110, 80, 100, 20);tf_booktype.add("科技");tf_booktype.add("文学");tf_booktype.add("社科");tf_booktype.add("其他");lbauthor.setBounds(240, 80, 50, 20); // 作者tf_author.setBounds(300, 80, 100, 20);lbtranslator.setBounds(50, 120, 50, 20); // 设置译者tf_translator.setBounds(110, 120, 100, 20);lbpublisher.setBounds(240, 120, 50, 20); // 出版社tf_publisher.setBounds(300, 120, 100, 20);lbpublish_time.setBounds(50, 160, 50, 20); // 出版时间tf_publish_time.setBounds(110, 160, 100, 20);lbprice.setBounds(240, 160, 50, 20); // 定价tf_price.setBounds(300, 160, 100, 20);lbstock.setBounds(50, 200, 50, 20); // 库存数量tf_stock.setBounds(110, 200, 100, 20);saveBtn.setBounds(150, 240, 80, 25); // 保存按钮closeBtn.setBounds(280, 240, 80, 25);// 关闭按钮if(str.equals("save")){setTitle("添加图书");}else if(str.equals("update")){setTitle("修改图书");lbbookid_c.setBounds(100, 10, 50, 20); // 图书编号tf_bookid_c.setBounds(160, 10, 100, 20);tf_bookid.setEditable(false);//修改的图书信息中id不可以修改queryBtn.setBounds(280, 10, 80, 20); // 查询按钮add(lbbookid_c);add(tf_bookid_c);add(queryBtn);queryBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {HashMap<String, Object> map = new HashMap<String, Object>();map.put("bookid", tf_bookid_c);Book book = (Book)Jcwh.btn_queryActionPerformed(e,map).get("book");if(book!=null){tf_bookid.setText(book.getId());tf_bookname.setText(book.getBookname());// 将Choice的选定项设置为其名称等于指定字符串的项tf_booktype.select(book.getBooktype());tf_author.setText(book.getAuthor());tf_translator.setText(book.getTranslator());tf_publisher.setText(book.getPublisher());tf_publish_time.setText(book.getPublish_time().toString());tf_price.setText(String.valueOf(book.getPrice()));tf_stock.setText(String.valueOf(book.getStock()));}}});saveBtn.setLabel("修改");//将按钮显示文字修改成“修改”}else if(str.equals("delete")){setTitle("删除图书");lbbookid_c.setBounds(100, 10, 50, 20); // 图书编号tf_bookid_c.setBounds(160, 10, 100, 20);tf_bookid.setEditable(false);//修改的图书信息中id不可以修改queryBtn.setBounds(280, 10, 80, 20); // 查询按钮add(lbbookid_c);add(tf_bookid_c);add(queryBtn);queryBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {HashMap<String, Object> map = new HashMap<String, Object>();map.put("bookid", tf_bookid_c);Book book = (Book)Jcwh.btn_queryActionPerformed(e,map).get("book");if(book!=null){tf_bookid.setText(book.getId());tf_bookname.setText(book.getBookname());// 将Choice的选定项设置为其名称等于指定字符串的项tf_booktype.select(book.getBooktype());tf_author.setText(book.getAuthor());tf_translator.setText(book.getTranslator());tf_publisher.setText(book.getPublisher());tf_publish_time.setText(book.getPublish_time().toString());tf_price.setText(String.valueOf(book.getPrice()));tf_stock.setText(String.valueOf(book.getStock()));}}});saveBtn.setLabel("删除");//将按钮显示文字修改成“删除”}add(lbbookid);add(tf_bookid);add(lbbookname);add(tf_bookname);add(lbbooktype);add(tf_booktype);add(lbauthor);add(tf_author);add(lbtranslator);add(tf_translator);add(lbpublisher);add(tf_publisher);add(lbpublish_time);add(tf_publish_time);add(lbprice);add(tf_price);add(lbstock);add(tf_stock);add(saveBtn);add(closeBtn);setLocationRelativeTo(null); // 使窗体在屏幕上居中放置setVisible(true); // 使窗体可见}private void clearAllTextfield() {tf_bookid.setText("");tf_bookname.setText("");tf_author.setText("");tf_translator.setText("");tf_publisher.setText("");tf_publish_time.setText("");tf_price.setText("");tf_stock.setText("");}}4.读者管理public class ReaderManeger extends JFrame {private static final long serialVersionUID = -2399939451497711745L;Label lbreaderid_c = new Label("读者编号");TextField tf_readerid_c = new TextField();Label lbreaderid = new Label("读者编号");TextField tf_readerid = new TextField();Label lbreadername = new Label("读者姓名");TextField tf_readername = new TextField();Label lbreadertype = new Label("读者类别");Choice tf_readertype = new Choice();Label lbsex = new Label("性别");Choice tf_sex = new Choice();Label lbmax_num = new Label("可借数量");TextField tf_max_num = new TextField();Label lbdays_num = new Label("可借天数");TextField tf_days_num = new TextField();Button queryBtn = new Button("查询");Button saveBtn = new Button("保存");Button closeBtn = new Button("关闭");private String optionStr;//保存、修改、删除ReaderManeger(String str){optionStr = str;ggFrame(optionStr);saveBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {HashMap<String, Object> map = new HashMap<String, Object>();map.put("readerid", tf_readerid);map.put("readername", tf_readername);map.put("readertype", tf_readertype);map.put("sex", tf_sex);map.put("days_num", tf_days_num);map.put("max_num", tf_max_num);int i ;if(optionStr.equals("delete")){i = Jcwh.btn_delReaderActionPerformed(e, map);}else{i = Jcwh.btn_saveReaderActionPerformed(e,map,optionStr);}if (i == 1) {String showInfo = "";if(optionStr.equals("save")){showInfo = "读者添加成功!";}else if(optionStr.equals("update")){showInfo = "读者修改成功!";}else if(optionStr.equals("delete")){showInfo = "读者删除成功!";}JOptionPane.showMessageDialog(null, showInfo);// 清空全部文本框clearAllTextfield();}}});closeBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {dispose(); // 释放当前窗体}});this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) { // 关闭当前窗口dispose(); // 释放当前窗体}});}private void ggFrame(String str) {setLayout(null);setTitle("添加读者信息");setSize(500, 230);lbreaderid.setBounds(50, 50, 50, 20);tf_readerid.setBounds(110, 50, 100, 20);lbreadername.setBounds(240, 50, 50, 20);tf_readername.setBounds(300, 50, 100, 20);lbreadertype.setBounds(50, 80, 50, 20);tf_readertype.setBounds(110, 80, 100, 20);tf_readertype.add("教师");tf_readertype.add("学生");tf_readertype.add("职工");lbsex.setBounds(240, 80, 50, 20);tf_sex.setBounds(300, 80, 100, 20);tf_sex.add("男");tf_sex.add("女");lbmax_num.setBounds(50, 110, 50, 20);tf_max_num.setBounds(110, 110, 100, 20);lbdays_num.setBounds(240, 110, 50, 20);tf_days_num.setBounds(300, 110, 100, 20);saveBtn.setBounds(150, 150, 80, 25);closeBtn.setBounds(280, 150, 80, 25);if(str.equals("save")){setTitle("添加读者");}else if(str.equals("update")){setTitle("修改读者");lbreaderid_c.setBounds(100, 10, 50, 20);tf_readerid_c.setBounds(160, 10, 100, 20);tf_readerid.setEditable(false);queryBtn.setBounds(280, 10, 80, 20);add(lbreaderid_c);add(tf_readerid_c);add(queryBtn);queryBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {HashMap<String, Object> map = new HashMap<String, Object>();map.put("readerid", tf_readerid_c);Reader reader = (Reader)Jcwh.btn_queryReaderActionPerformed(e,map).get("reader");if(reader!=null){tf_readerid.setText(reader.getId());tf_readername.setText(reader.getReadername());tf_readertype.select(reader.getReadertype());tf_sex.select(reader.getSex());tf_days_num.setText(String.valueOf(reader.getDays_num()));tf_max_num.setText(String.valueOf(reader.getMax_num()));}}});saveBtn.setLabel("修改");//将按钮显示文字修改成“修改”}else if(str.equals("delete")){setTitle("删除图书");lbreaderid_c.setBounds(100, 10, 50, 20);tf_readerid_c.setBounds(160, 10, 100, 20);tf_readerid.setEditable(false);queryBtn.setBounds(280, 10, 80, 20);add(lbreaderid_c);add(tf_readerid_c);add(queryBtn);queryBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {HashMap<String, Object> map = new HashMap<String, Object>();map.put("readerid", tf_readerid_c);Reader reader = (Reader)Jcwh.btn_queryReaderActionPerformed(e,map).get("reader");if(reader!=null){tf_readerid.setText(reader.getId());tf_readername.setText(reader.getReadername());tf_readertype.select(reader.getReadertype());tf_sex.select(reader.getSex());tf_days_num.setText(String.valueOf(reader.getDays_num()));tf_max_num.setText(String.valueOf(reader.getMax_num()));}}});saveBtn.setLabel("删除");//将按钮显示文字修改成“删除”}add(lbreaderid);add(lbreadername);add(lbreadertype);add(lbsex);add(lbmax_num);add(lbdays_num);add(tf_readerid);add(tf_readername);add(tf_max_num);add(tf_days_num);add(tf_readertype);add(tf_sex);add(saveBtn);add(closeBtn);setLocationRelativeTo(null);setVisible(true);}private void clearAllTextfield() {tf_readerid.setText("");tf_readername.setText("");tf_max_num.setText("");tf_days_num.setText("");}public static void main(String[] args) {ReaderManeger r = new ReaderManeger("update");}}5.借书public class Borrow extends Frame {private static final long serialVersionUID = -1036076990599464079L;String SepLine = "-------------------------------------------------";Label lbbookid = new Label("图书编号");Label lbreaderid = new Label("读者编号");TextField tf_bookid = new TextField();TextField tf_readerid = new TextField();Button queryBtn = new Button("查询");Label lbbookinfo = new Label(SepLine + "图书信息" + SepLine); Label lbbookname = new Label("图书名称:");Label tf_bookname = new Label("xx");Label lbauthor = new Label("作者:");Label tf_author = new Label("xx");Label lbpublisher = new Label("出版社:");Label tf_publisher = new Label("xx");Label lbpublish_time = new Label("出版时间:");Label tf_publish_time = new Label("xx");Label lbprice = new Label("定价:");Label tf_price = new Label("xx");Label lbstock = new Label("库存数量:");Label tf_stock = new Label("xx");Label lbreaderinfo = new Label(SepLine + "读者信息" + SepLine); Label lbreadername = new Label("读者姓名:");Label tf_readername = new Label("xx");Label lbreadertype = new Label("读者类型:");Label tf_readertype = new Label("xx");Label lbmax_num = new Label("最大可借数:");Label tf_max_num = new Label("xx");Label lbdays_num = new Label("最大可借天数:");Label tf_days_num = new Label("xx");Label lbborrowinfo = new Label(SepLine + "借阅信息" + SepLine); Label lbborrowednum = new Label("该读者已借图书数量:"); Label tf_borrowednum = new Label("xx");Label lbif_borrow = new Label("该读者是否可借所选图书:"); Label tf_if_borrow = new Label("xx");Label lbborrow_date = new Label("借阅日期:");Label tf_borrow_date = new Label("xx");Button borrowBtn = new Button("借出");Button closeBtn = new Button("关闭");public Borrow() {setLayout(null);setTitle("借阅图书");setSize(500, 420);this.setForeground(Color.BLACK); // 设置前景色为黑色lbbookid.setBounds(30, 40, 50, 25); // 图书编号tf_bookid.setBounds(90, 40, 90, 20);lbreaderid.setBounds(200, 40, 50, 25); // 读者编号tf_readerid.setBounds(260, 40, 90, 20);queryBtn.setBounds(370, 40, 80, 25); // 查询按钮lbbookinfo.setBounds(30, 70, 440, 25); // 图书信息提示条lbbookname.setBounds(30, 100, 60, 25); // 图书名称tf_bookname.setBounds(90, 100, 200, 25);lbauthor.setBounds(310, 100, 60, 25); // 作者tf_author.setBounds(370, 100, 90, 25);lbpublisher.setBounds(30, 125, 60, 25); // 出版社tf_publisher.setBounds(90, 125, 200, 25);lbpublish_time.setBounds(310, 125, 60, 25); // 出版时间tf_publish_time.setBounds(370, 125, 90, 25);lbprice.setBounds(30, 150, 60, 25); // 定价tf_price.setBounds(90, 150, 200, 25);lbstock.setBounds(310, 150, 60, 25); // 库存数量tf_stock.setBounds(370, 150, 90, 25);lbreaderinfo.setBounds(30, 180, 440, 25); // 读者信息提示条lbreadername.setBounds(30, 205, 60, 25); // 读者姓名tf_readername.setBounds(90, 205, 90, 25);lbreadertype.setBounds(310, 205, 60, 25); // 读者类型tf_readertype.setBounds(370, 205, 90, 25);lbmax_num.setBounds(30, 230, 75, 25); // 最大可借数tf_max_num.setBounds(105, 230, 90, 25);lbdays_num.setBounds(310, 230, 85, 25); // 最大可借天数tf_days_num.setBounds(395, 230, 70, 25);lbborrowinfo.setBounds(30, 260, 440, 25); // 借阅信息提示条lbborrowednum.setBounds(30, 285, 120, 25);// 已借图书数量tf_borrowednum.setBounds(150, 285, 50, 25);lbif_borrow.setBounds(30, 310, 145, 25); // 是否可借tf_if_borrow.setBounds(175, 310, 50, 25);lbborrow_date.setBounds(30, 335, 60, 25);// 借书日期tf_borrow_date.setBounds(90, 335, 100, 25);borrowBtn.setBounds(160, 365, 80, 25);// 借出按钮borrowBtn.setEnabled(false); // 开始时禁用借出按钮closeBtn.setBounds(260, 365, 80, 25);// 关闭按钮queryBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) { btn_querywActionPerformed(e); } }); borrowBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) { btn_borrowActionPerformed(e); } });closeBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) { setForeground(Color.BLACK); dispose(); } }); this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {setForeground(Color.BLACK); // 设置前景色为黑色dispose(); // 关闭窗体}});add(lbbookid);add(lbreaderid);add(queryBtn);add(lbbookinfo);add(lbbookname);add(lbauthor);add(lbpublisher);add(lbpublish_time);add(lbprice);add(lbstock);add(lbreaderinfo);add(lbreadername);add(lbreadertype);add(lbmax_num);add(lbdays_num);add(lbborrowinfo);add(lbborrowednum);add(lbif_borrow);add(lbborrow_date);add(borrowBtn);add(closeBtn);setLocationRelativeTo(null); // 使窗体在屏幕上居中放置setVisible(true); // 使窗体可见setForeground(Color.RED); // 设置前景色为红色add(tf_bookid);add(tf_readerid);add(tf_bookname);add(tf_author);add(tf_publisher);add(tf_publish_time);add(tf_price);add(tf_stock);add(tf_readername);add(tf_readertype);add(tf_max_num);add(tf_days_num);add(tf_borrowednum);add(tf_if_borrow);add(tf_borrow_date);}// 图书和读者查询private void btn_querywActionPerformed(ActionEvent e) {String bookid = tf_bookid.getText();String readerid = tf_readerid.getText();// 如果图书编号或读者编号两者均为空,或者有一个为空,则返回if (bookid.equals("") || readerid.equals("")) {JOptionPane.showMessageDialog(null, "图书编号和读者编号均不能为空!");init(); // 重新初始化各参数并禁止借出按钮return;}// 按编号查询图书,结果存入book对象中Book book = BookSelect.SelectBookById(bookid);if (book != null) { // 如果查询到结果,将其显示在各文本框中tf_bookname.setText(book.getBookname());tf_author.setText(book.getAuthor());tf_publisher.setText(book.getPublisher());tf_publish_time.setText(book.getPublish_time().toString());tf_price.setText(String.valueOf((book.getPrice())));tf_stock.setText(String.valueOf(book.getStock()));} else {JOptionPane.showMessageDialog(null, "图书编号有误,查无此书!");init(); // 重新初始化各参数并禁止借出按钮return;}if (book.getStock() == 0) {JOptionPane.showMessageDialog(null, "图书已无库存,无法借阅!");init(); // 重新初始化各参数并禁止借出按钮return;}// 按编号查询读者,结果存入reader对象中Reader reader = ReaderSelect.selectReaderById(readerid);// 如果查询到结果,将其显示在各文本框中if (reader != null) {tf_readername.setText(reader.getReadername());tf_readertype.setText(reader.getReadertype());tf_max_num.setText(String.valueOf(reader.getMax_num()));tf_days_num.setText(String.valueOf(reader.getDays_num()));} else {JOptionPane.showMessageDialog(null, "读者编号有误,查无此人!");init(); // 重新初始化各参数并禁止借出按钮return;}// 查询指定读者是否已借过指定图书且未归还if (IfBorrowBack.findbook(bookid, readerid)) {JOptionPane.showMessageDialog(null, "该读者已借阅所选图书,且未归还!");init(); // 重新初始化各参数并禁止借出按钮return;}// 统计读者所借图书数量int borrowednum = statborrowednum(readerid);tf_borrowednum.setText(String.valueOf(borrowednum));// 如果读者已借图书尚未超出其允许最大借书量,则允许其继续借阅所选图书if (borrowednum < reader.getMax_num()) {tf_if_borrow.setText("是");// 创建一个简单日期格式对象,注意:MM一定要用大写SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");// 创建日期变量,其内容为当前日期Date currentdate = new Date();// 将日期按指定格式输出String borrowdate = sdf.format(currentdate);tf_borrow_date.setText(borrowdate);borrowBtn.setEnabled(true); // 使借出按钮有效} else {JOptionPane.showMessageDialog(null, "该读者借书过多,无法继续借阅!");init(); // 重新初始化各参数并禁止借出按钮return;}}// 填写借出图书记录private void btn_borrowActionPerformed(ActionEvent e) {String sql;String bookid = tf_bookid.getText();String readerid = tf_readerid.getText();String borrowdate = tf_borrow_date.getText();// 为borrow表增加借书记录sql = "insert into borrow (book_id,reader_id,"+ "borrow_date,if_back) values('" + bookid + "','" + readerid + "','" + borrowdate + "','否')";。

java课程设计图书馆管理系统代码

java课程设计图书馆管理系统代码

Java课程设计:图书馆管理系统代码介绍本文档是关于使用Java编写的图书馆管理系统代码的设计和实现。

图书馆管理系统是一种用于管理图书馆藏书、借还书籍和读者信息的应用程序。

它可以帮助图书馆提高管理效率和服务质量,并提供方便的读者查询和借还书的功能。

功能和需求1.用户管理:图书馆管理员可以添加、删除和编辑读者信息,包括姓名、联系方式和借书情况等。

2.图书管理:管理员可以添加、删除和编辑图书信息,包括书名、作者、出版日期和库存数量等。

3.借书和还书功能:读者可以借阅图书,管理员可以归还已借出的图书,并更新库存数量。

4.图书查询功能:读者可以根据图书名称、作者或出版日期等条件进行图书查询,以了解图书的详细信息和当前库存情况。

5.借阅记录查询:管理员可以查询读者的借阅记录,包括借阅时间、归还时间和借阅状态等。

系统设计数据模型系统设计采用面向对象的编程思想,主要包括以下几个类:图书馆类(Library)•属性:–读者列表(Reader[] readers)–图书列表(Book[] books)•方法:–添加读者(addReader)–删除读者(removeReader)–编辑读者信息(editReader)–添加图书(addBook)–删除图书(removeBook)–编辑图书信息(editBook)–借书(borrowBook)–还书(returnBook)–图书查询(searchBook)–借阅记录查询(searchRecords)读者类(Reader)•属性:–姓名(String name)–联系方式(String contact)–借阅记录列表(Record[] records)•方法:–借书(borrowBook)–还书(returnBook)图书类(Book)•属性:–书名(String title)–作者(String author)–出版日期(Date publicationDate)–库存数量(int quantity)•方法:–增加库存(increaseQuantity)–减少库存(decreaseQuantity)借阅记录类(Record)•属性:–图书(Book book)–读者(Reader reader)–借阅日期(Date borrowDate)–归还日期(Date returnDate)•方法:–设置归还日期(setReturnDate)系统流程图下图展示了图书馆管理系统的基本流程:graph LRA[开始] --> B[登录]B --> C{用户类型}C -->|管理员| E[管理图书馆]C -->|读者| F[查询图书]F --> G{查询类型}G -->|书名| H[查询结果]G -->|作者| H[查询结果]G -->|出版日期| H[查询结果]F --> I[返回主菜单]I --> FE --> J{操作类型}J -->|添加读者| K[输入读者信息]K --> L[保存读者信息]J -->|删除读者| M[输入读者ID]M --> N[删除读者信息]J -->|编辑读者| O[输入读者ID]O --> P[输入更新信息]P --> Q[更新读者信息]J -->|添加图书| R[输入图书信息]R --> S[保存图书信息]J -->|删除图书| T[输入图书ID]T --> U[删除图书信息]J -->|编辑图书| V[输入图书ID]V --> W[输入更新信息]W --> X[更新图书信息]J -->|借书| Y[输入读者ID和图书ID]Y --> Z[创建借阅记录]J -->|还书| A1[输入借阅记录ID]A1 --> B1[设置归还日期]B1 --> C1[更新借阅记录]J -->|查询借阅记录| D1[输入读者ID]D1 --> E1[查询借阅记录信息]代码实现以下是Java图书馆管理系统的代码实现:public class Library {private Reader[] readers;private Book[] books;public void addReader(Reader reader) {// 添加读者}public void removeReader(int readerId) {// 删除读者}public void editReader(int readerId, Reader reader) { // 编辑读者信息}public void addBook(Book book) {// 添加图书}public void removeBook(int bookId) {// 删除图书}public void editBook(int bookId, Book book) { // 编辑图书信息}public void borrowBook(int readerId, int bookId) { // 借书}public void returnBook(int recordId) {// 还书}public Book[] searchBook(String keyword) {// 图书查询}public Record[] searchRecords(int readerId) { // 借阅记录查询}}public class Reader {private String name;private String contact;private Record[] records;public void borrowBook(int bookId) {// 借书}public void returnBook(int recordId) {// 还书}}public class Book {private String title;private String author;private Date publicationDate;private int quantity;public void increaseQuantity(int amount) {// 增加库存}public void decreaseQuantity(int amount) {// 减少库存}}public class Record {private Book book;private Reader reader;private Date borrowDate;private Date returnDate;public void setReturnDate(Date returnDate) {// 设置归还日期}}快速开始编译和运行图书馆管理系统的示例代码,请按照以下步骤:1.准备Java开发环境。

Java编写的简单图书管理系统

Java编写的简单图书管理系统

Java编写的简单图书管理系统主界面代码实现package Library;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class Login extends JFrame {private static final long serialVersionUID = 1L; private JLabel jlUsername;private JLabel jlPwd;private JTextField txtUsername; //用户名private JTextField txtPassword; //密码private JButton jbOk;private JButton jbCancel;public JLabel getJlUsername() {if(jlUsername==null){jlUsername=new JLabel("账号");jlUsername.setForeground(Color.BLACK);jlUsername.setBounds(118, 40, 85, 30);}return jlUsername;}public JLabel getJlPwd() {if(jlPwd==null){jlPwd=new JLabel("密码");jlPwd.setForeground(Color.BLACK);jlPwd.setBounds(118, 100, 85, 30);}return jlPwd;}public JTextField getTxtUsername() {if(txtUsername==null){txtUsername=new JTextField(20);txtUsername.setBounds(180,40 , 200, 30);}return txtUsername;}public JTextField getTxtPassword() {if(txtPassword==null){txtPassword=new JPasswordField(20);txtPassword.setBounds(180, 100, 200, 30);}return txtPassword;}public JButton getJbOk() {if(jbOk==null){jbOk=new JButton("登陆");jbOk.setBounds(150, 180, 90, 30);//jbOk.addActionListener(this);}return jbOk;}public JButton getJbCancel() {if(jbCancel==null){jbCancel=new JButton("取消");jbCancel.setBounds(300, 180, 90, 30);}return jbCancel;}public Login(String title){super(title);//JFrame frame=new JFrame();Container cantainer=this.getContentPane();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);ImageIcon img= new ImageIcon("F:\\Java\\传习\\src\\Library\\ZF`XY`H48I_}U)C4~}M2~C4.jpg");//这是背景图片JLabel imgLabel = new JLabel(img);//将背景图放在标签里。

图书管理系统 Java代码 功能搜索与添加

图书管理系统 Java代码 功能搜索与添加

Startwindow.java/*** @author Caroline* @version 1.0** 此类用于创建初始窗口,即图书管理系统的初始界面* 窗口中的两个按钮,分别连接到添加图书与搜索图书的界面*/import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;public class StartWindow extends JFrame implements ActionListener {JButton b1,b2;//按钮b1是搜索按钮,b2是添加按钮JLabel label = new JLabel("Welcome to Library Manage System!");JPanel panel1 = new JPanel(); //创建三个面板,用于放置按钮JPanel panel2 = new JPanel();JPanel panel3 = new JPanel();public StartWindow(){Container con = this.getContentPane();//顶层容器getContentPane().add(panel1,BorderLayout.NORTH);//分别将面板放置于顶层容器的北部、南部与中部getContentPane().add(panel2,BorderLayout.SOUTH);getContentPane().add(panel3,BorderLayout.CENTER);b1 = new JButton("Search Book");b2 = new JButton("Add Book & Check All Book");//按钮命名panel1.add(b1);panel2.add(b2); //分别向面板添加按钮panel3.add(label);setVisible(true);//设置可见setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置关闭方式b1.addActionListener(this);b2.addActionListener(this);//添加监听器}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource()==b1) {new SearchBook();//调用类SearchBook}if(e.getSource()==b2) {AddBook a = new AddBook();//调用类AddBooka.setVisible(true);}}public static void main(String[] args) {StartWindow w = new StartWindow();//创建窗口w.setTitle("Library Manage System");//窗口命名w.setSize(350,150);//窗口大小w.setLocation(450,300);//窗口位置w.setVisible(true);//窗口设置为可见w.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);Color c = new Color(10,20,30);//设置颜色}}Addbook.java/*** @author Caroline* @version 1.0** 此类用于显示添加图书界面,窗口顶部设有一个检索所有图书按钮,点击后即可查看系统内的所有图书信息* 窗口中部是信息显示区域;窗口底部是添加图书的信息输入区域,根据提示输入信息后,点击添加按钮,* 即可成功添加图书,新增图书的信息也会响应的显示在窗口中部的信息显示区域*/import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.Vector;import javax.swing.*;import javax.swing.table.*;//维护表格public class AddBook extends JFrame implements ActionListener {DefaultTableModel model; //表格模型对象JTable table;JTextField afield;JTextField bfield;JTextField cfield;JLabel inform = new JLabel("Inform:If you didn't see the message'successfully add a book',it means that your Book ID was used!");JButton add = new JButton("Add This Book"); //添加按钮JButton check = new JButton("Check All Book");JPanel panel = new JPanel();JPanel panel1 = new JPanel();JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JPanel p4 = new JPanel();JPanel p5 = new JPanel();private Connection myCon;private Statement myStatement;private ResultSet myResultSet;String[] header={"Book ID","Book Name","Book Author","State"}; Object[][] data={};String driverClass = "com.hxtt.sql.access.AccessDriver";String url = "jdbc:Access:///H:/JAVA/LIBRARY SYSTEM/BOOK.mdb"; public AddBook(){super();setTitle("Book Add");setBounds(400,100,600,500);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);model = new DefaultTableModel(data,header);table = new JTable(model);JScrollPane scrollPane = new JScrollPane(table); //支持滚动getContentPane().add(scrollPane,BorderLayout.CENTER);getContentPane().add(panel1,BorderLayout.NORTH);getContentPane().add(panel,BorderLayout.SOUTH);panel.setLayout(new BorderLayout());panel.add(p1,BorderLayout.NORTH);panel.add(p2,BorderLayout.SOUTH);p1.setLayout(new BorderLayout());p1.add(p3,BorderLayout.NORTH);p1.add(p4,BorderLayout.CENTER);p1.add(p5,BorderLayout.SOUTH);panel1.add(check);p3.add(new JLabel("BOOK ID: "));afield = new JTextField(10);afield.setText("Example:243");afield.setForeground(Color.LIGHT_GRAY);p3.add(afield);p3.add(new JLabel("BOOK Name: "));bfield = new JTextField(10);bfield.setText("Example:野人");bfield.setForeground(Color.LIGHT_GRAY);p3.add(bfield);p3.add(new JLabel("Book Author: "));cfield = new JTextField(10);cfield.setText("Example:高行健");cfield.setForeground(Color.LIGHT_GRAY);p3.add(cfield);p4.add(inform);p5.add(add);table.setEnabled(false);//不可编辑add.addActionListener(this);//添加事件check.addActionListener(this);afield.addFocusListener(new FocusAdapter(){ @Overridepublic void focusGained(FocusEvent e){ afield.setText("");afield.setForeground(Color.BLACK);}@Overridepublic void focusLost(FocusEvent e){}});bfield.addFocusListener(new FocusAdapter(){ @Overridepublic void focusGained(FocusEvent e){ bfield.setText("");bfield.setForeground(Color.BLACK);}@Overridepublic void focusLost(FocusEvent e){}});cfield.addFocusListener(new FocusAdapter(){ @Overridepublic void focusGained(FocusEvent e){ cfield.setText("");cfield.setForeground(Color.BLACK);}@Overridepublic void focusLost(FocusEvent e) {}});}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource()==check){try{Class.forName(driverClass).newInstance();//加载驱动程序myCon = DriverManager.getConnection(url, "", "");//获得jdbc 连接myStatement = myCon.createStatement();//创建Statement对象String sql = "select * from booklist";ResultSet myResultSet = myStatement.executeQuery(sql);JOptionPane.showMessageDialog(null,"Successfully Check!");model.setRowCount(0);while(myResultSet.next()){//row.removeAllElements();Vector<String> row=new Vector<String>();row.add(myResultSet.getString(1));row.add(myResultSet.getString(2));row.add(myResultSet.getString(3));row.add(myResultSet.getString(4));model.addRow(row);}myStatement.close();myCon.close();}catch(Exception exe){}}if(e.getSource()==add){try{Class.forName(driverClass).newInstance();//加载驱动程序myCon = DriverManager.getConnection(url, "", "");//获得jdbc 连接myStatement = myCon.createStatement();//创建Statement对象String add1 = afield.getText();String add2 = bfield.getText();String add3 = cfield.getText();String sql1 = "select * from booklist where bookid = '" + add1 + "'";String sql = "insert into booklist [(bookid,bookname,booksuthor,state)]values('"+add1+"','"+add2+"','"+add3+"','spare')";myStatement.executeUpdate(sql);ResultSet myResultSet = myStatement.executeQuery(sql1);//实时更新JOptionPane.showMessageDialog(null,"Successfully Add A Book!");model.setRowCount(0);while(myResultSet.next()){//row.removeAllElements();Vector<String> row=new Vector<String>();row.add(myResultSet.getString(1));row.add(myResultSet.getString(2));row.add(myResultSet.getString(3));row.add(myResultSet.getString(4));model.addRow(row);}myStatement.close();myCon.close();}catch(Exception exe){}}}public static void main(String[] args){AddBook a = new AddBook();a.setVisible(true);}}Searchbook.java/*** @author Caroline* @version 1.0** 此类用于显示搜索图书界面,窗口北部有三个按钮分别为按ID搜索、按书名搜索与按作者搜索* 窗口中部是显示搜索内容的区域*/import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.Vector;import ng.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;public class SearchBook extends JFrame implements ActionListener{JSplitPane splitPane;JPanel search = new JPanel();JPanel p1 = new JPanel();JPanel p2 = new JPanel();JScrollPane message; //创建多个面板DefaultTableModel model;JTable table;//创建表格JButton SearchByID = new JButton("Search By ID");JButton SearchByName = new JButton("Search By Name");JButton SearchByAuthor = new JButton("Search By Author");//创建按钮并命名JTextField field;private Connection myCon;private Statement myStatement;private ResultSet myResultSet;//声明对象String[] header={"Book ID","Book Name","Book Author","State"};//表格列名设置Object[][] data={};String driverClass = "com.hxtt.sql.access.AccessDriver";String url = "jdbc:Access:///H:/JAVA/LIBRARY SYSTEM/BOOK.mdb";//数据库地址public SearchBook(){field = new JTextField(30);field.setText("Example:243 or 野人or 高行健");//提示信息field.setForeground(Color.LIGHT_GRAY);//设置颜色search.setLayout(new BorderLayout());search.add(p1,BorderLayout.NORTH);search.add(p2,BorderLayout.SOUTH);p1.add(field);p2.add(SearchByID);p2.add(SearchByName);p2.add(SearchByAuthor);model = new DefaultTableModel(data,header);;table = new JTable(model);table.setGridColor(Color.BLUE);//设置网格颜色table.setRowHeight(20);//设置行高message = new JScrollPane(table);splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,true,search,message);setContentPane(splitPane);//设置新生成的分割面板为窗口的内容面板setTitle("Book Search");setBounds(450,200,500,400);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);table.setEnabled(false);//不可编辑SearchByID.requestFocus(true);//更改焦点SearchByID.addActionListener(this);SearchByName.addActionListener(this);SearchByAuthor.addActionListener(this);field.addFocusListener(new FocusAdapter(){@Overridepublic void focusGained(FocusEvent e){field.setText("");field.setForeground(Color.BLACK);}@Overridepublic void focusLost(FocusEvent e){}});}public static void main(String[] args){new SearchBook();}@Overridepublic void actionPerformed(ActionEvent e){String input = new String(field.getText());if(e.getSource()==SearchByID){try{Class.forName(driverClass).newInstance();//加载驱动程序myCon = DriverManager.getConnection(url, "", "");//获得jdbc 连接myStatement = myCon.createStatement();//创建Statement对象String search = field.getText();String sql = "select * from booklist where bookid = '" + input + "'";ResultSet myResultSet = myStatement.executeQuery(sql);model.setRowCount(0);if(myResultSet.next()){//row.removeAllElements();Vector<String> row=new Vector<String>();row.add(myResultSet.getString(1));row.add(myResultSet.getString(2));row.add(myResultSet.getString(3));row.add(myResultSet.getString(4));model.addRow(row);JOptionPane.showMessageDialog(null,"Successfully Find!");}elseJOptionPane.showMessageDialog(null,"ERROR!Can't find the book!");myStatement.close();myCon.close();}catch(Exception exe){}}if(e.getSource()==SearchByName){try{Class.forName(driverClass).newInstance();//加载驱动程序myCon = DriverManager.getConnection(url, "", "");//获得jdbc 连接myStatement = myCon.createStatement();//创建Statement对象String search = field.getText();String sql = "select * from booklist where bookname like '%[" + input + "]%'";ResultSet myResultSet = myStatement.executeQuery(sql);model.setRowCount(0);String a = "0"; //下面用于判断能否于数据库中找到相关书籍while(myResultSet.next()){//row.removeAllElements();Vector<String> row=new Vector<String>();a = myResultSet.getString(1);row.add(a);row.add(myResultSet.getString(2));row.add(myResultSet.getString(3));row.add(myResultSet.getString(4));model.addRow(row);}if(a=="0"){JOptionPane.showMessageDialog(null,"ERROR!Can't find the book!");}myStatement.close();myCon.close();}catch(Exception exe){}}if(e.getSource()==SearchByAuthor){try{Class.forName(driverClass).newInstance();//加载驱动程序myCon = DriverManager.getConnection(url, "", "");//获得jdbc 连接myStatement = myCon.createStatement();//创建Statement对象String search = field.getText();String sql = "select * from booklist where bookauthor like '%[" + input + "]%'";ResultSet myResultSet = myStatement.executeQuery(sql);model.setRowCount(0);String b = "0";while(myResultSet.next()){//row.removeAllElements();Vector<String> row=new Vector<String>();b = myResultSet.getString(1);row.add(b);row.add(myResultSet.getString(2));row.add(myResultSet.getString(3));row.add(myResultSet.getString(4));model.addRow(row);}if(b=="0"){JOptionPane.showMessageDialog(null,"ERROR!Can't find the book!");}myStatement.close();myCon.close();}catch(Exception exe){}}}}。

图书借阅管理系统java代码

图书借阅管理系统java代码

以我给的标题写原创文档,最低1200字,要求以Markdown文本格式输出,不要带图片和AI、人工智能、Markdown、GPT等关键词,标题为:图书借阅管理系统java代码# 图书借阅管理系统Java代码## 一、介绍图书借阅管理系统是一个帮助图书馆管理图书借阅情况的系统。

本系统基于Java开发,采用面向对象的编程方式,实现了对图书信息、借阅记录等数据的管理与处理。

用户可以通过该系统查询图书信息、借阅图书、归还图书,并实现了管理员对系统的管理功能。

## 二、功能模块### 1. 图书管理模块- 实现对图书信息的添加、删除、修改和查询功能。

- 对图书的分类管理,方便用户按照分类查找图书信息。

### 2. 用户管理模块- 用户注册与登录功能,保证用户数据的安全。

- 用户查询借阅情况、借阅历史等个人信息。

### 3. 借阅管理模块- 实现图书的借阅功能,包括借书日期、归还日期等信息的记录。

- 用户借阅超时提醒,确保图书及时归还。

### 4. 管理员模块- 管理员登录后可以对图书信息、用户信息进行管理。

- 实现图书归还、逾期处理等功能。

## 三、系统架构本系统采用MVC(Model-View-Controller)架构,实现了模型层、视图层、控制层之间的分离,提高了系统的灵活性和可维护性。

具体架构如下:1. Model层:负责处理数据的逻辑操作,包括对图书信息、用户信息、借阅记录等数据的管理。

2. View层:负责系统的界面展示,包括用户界面和管理员界面。

3. Controller层:负责处理用户请求,调用Model层的方法,并将结果返回给View层进行展示。

## 四、代码示例以下是借阅图书的Java代码示例:```javapublic class BorrowBook {private Book book;private User user;private Date borrowDate;private Date returnDate;// Constructorpublic BorrowBook(Book book, User user, Date borrowDate, Date returnDate) {this.book = book;er = user;this.borrowDate = borrowDate;this.returnDate = returnDate;}// Getters and setters}```以上代码实现了一个借阅图书的类`BorrowBook`,包含了借阅的图书信息、用户信息,借阅时间和归还时间。

基于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,a ddress;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();(new BorderLayout());book_id_label=new JLabel("编号",;book_name_label=new JLabel("名称",;author_label=new JLabel("作者",;press_label=new JLabel("出版社",;press_date_label=new JLabel("出版日期",;price_label=new JLabel("价格",;book_num_label=new JLabel("库存数",;borrowed_num_label=new JLabel("已借阅数",;address=new JLabel("藏书地址",;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);("0");addresst=new JComboBox();("扬子津图书馆");("荷花池图书馆");("瘦西湖图书馆");("淮海路图书馆");panel1=new JPanel();(new GridLayout(9,2));(book_id_label);(book_id_TextField);(book_name_label);(book_name_TextField);(press_label);(press_TextField);(author_label);(author_TextField);(press_date_label);(press_date_TextField);(price_label);(price_TextField);(book_num_label);(book_num_TextField);(borrowed_num_label);(borrowed_count);(address);(addresst);panel2=new JPanel();(new GridLayout(1,3));clear=new JButton("清空");(this);add=new JButton("添加");(this);exit=new JButton("退出");(this);(clear);(add);(exit);(panel1,;(panel2,;setVisible(true);}public void actionPerformed(ActionEvent e) {if()==exit){();}else if()==clear){("");("");("");("");("");("");("");}else if()==add){if().trim().equals("")){(null, "书号不能为空");}else if().trim().equals("")){(null, "书名不能为空");}else if().trim().equals("")){(null, "作者不能为空");}else if().trim().equals("")){(null, "出版社不能为空");}else if().trim().equals("")){(null, "出版日期不能为空");}else if().trim().equals("")){(null, "价格不能为空");}else if().trim().equals("")){(null, "库存不能为空");}else if().trim().equals("")){(null, "借阅数不能为空");}else {try{String strSQL="insert intobook(book_id,book_name,press,author,press_date,price,book_count,borrowed_count, store_address) values('"+().trim()+"','"+().trim()+"','"+().trim()+"','"+().trim()+"','"+().trim()+"','"+().trim()+"','"+().trim()+"','"+().trim()+"','"+()+"')";if(strSQL)){();(null,"添加图书成功");}else{(null,"添加图书失败");();}();}catch(Exception ex){}}}}}package library;import .*;import .*;public class book_delete extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JLabel TipLabel=new JLabel("请选择要删除的书名",;JComboBox bb=new JComboBox();JButton yes,exit;JPanel panel1=new JPanel();public book_delete(){super("删除图书信息");c=getContentPane();(new BorderLayout());try{String strSQL="select book_name from book where book_count>borrowed_count";rs=(strSQL);while()){(1));}}catch(SQLException sqle){}catch(Exception ex){}(TipLabel,;(bb,;yes=new JButton("确定");exit=new JButton("退出");(this);(this);(yes);(exit);(panel1,;setVisible(true);}public void actionPerformed(ActionEvent e){if()==exit){();}else if()==yes){try{String strSQL="select borrowed_count from book where book_name='"+()+"'";rs=(strSQL);if(!()){(null,"书库里没有你要删除的书");}else{String strSql="delete from book where book_name='"+()+"'and borrowed_count=0";();int count=(1);if(!(count==0)){(null,"此书还有学生没有还,不可删除");}else if(strSql)){(null,"删除成功");();();}else{(null,"删除失败");();();}}}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();(new BorderLayout());panel3=new JPanel();(TipLabel);(panel3,;book_name_label=new JLabel("名称",;author_label=new JLabel("作者",;press_label=new JLabel("出版社",;press_date_label=new JLabel("出版日期",;price_label=new JLabel("价格",;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();(new GridLayout(6,2));(book_name_label);(book_name_TextField);(author_label);(author_TextField);(press_label);(press_TextField);(press_date_label);(press_date_TextField);(price_label);(price_TextField);panel2=new JPanel();(new GridLayout(1,4));clear=new JButton("清空");yes=new JButton("确定");update=new JButton("更新");exit=new JButton("退出");(clear);(yes);(update);(exit);(this);(this);(this);(this);(false);(panel1,;(panel2,;setVisible(true);}public void actionPerformed(ActionEvent e){if()==exit){();;}else if()==clear){("");("");("");("");("");}else if()==yes){try{String strSQL="select * from book where book_name='"+().trim()+"'";rs=(strSQL);while()){("book_name"));("author"));("press"));("press_date"));("price"));}(true);}catch(NullPointerException upe){}catch(Exception es){}}else if()==update){try{String strSQL="update book set book_name='"+().trim()+"',press='"+().trim()+"',author='"+().trim()+"',press_date='"+().trim()+"',price='"+().trim()+"' where book_name='"+().trim()+"'";if(strSQL)){();(null,"更新图书成功");}else {(null,"更新图书失败");}();}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();(new BorderLayout());Calendar cal = ();int year,month,day;quals("")){(null, "对不起,没有读者借阅");}else if().equals("")){(null, "对不起,现在书库没有书");}else {try{rim();SimpleDateFormat format=newSimpleDateFormat("yyyy-MM-dd");Date dateStart=(startDate);Calendar cd=();(dateStart);, 2);String returnDate=());String strSQL="insert intoborrow(student_name,book_name,borrow_date,return_date,is_returned) values('"+()+"','"+()+"','"+().trim()+"','"+returnDate+"','"+().trim()+"')";if(strSQL)){(null, "借阅完成");strSQL = "update reader setborrow_count=borrow_count+1 where student_name='"+()+"'";(strSQL);strSQL="update book setborrowed_count=borrowed_count+1 where book_name='"+()+"'";(strSQL);();();}else{(null, "借阅失败");();();}}catch(Exception se){}}}}}package library;import .*;import .*;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();(new BorderLayout());bookname=new JLabel("书名",;studentname=new JLabel("人名",;booknamet=new JTextField(15);studentnamet=new JTextField(15);search=new JButton("查询");exit=new JButton("退出");(this);(this);Box box1=();(studentname);(studentnamet);(search);Box box2=();(bookname);(booknamet);(exit);Box boxH=();(box1);(box2);());panel1=new JPanel();(boxH);panel2=new JPanel();String []name={"读者","书名","借阅时间","应还时间","是否归还"};String [][]data=new String[0][0];defaultModel=new DefaultTableModel(data,name);table=new JTable(defaultModel);(new Dimension(400,80));JScrollPane s=new JScrollPane(table);(s);(panel1,;(panel2,;}public void actionPerformed(ActionEvent e){if()==exit){();();}else if()==search){String strSQL="selectstudent_name,book_name,borrow_date,return_date,is_returned from borrow";String strSql=null;if().trim().equals("")&&().trim().equals("")){strSql=strSQL;}else if().trim().equals("")){strSql="selectstudent_name,book_name,borrow_date,return_date,is_returned from borrow where book_name='"+().trim()+"'";}else if().trim().equals("")){strSql="selectstudent_name,book_name,borrow_date,return_date,is_returned from borrow where student_name='"+().trim()+"'";}else{strSql="selectstudent_name,book_name,borrow_date,return_date,is_returned from borrow where student_name='"+().trim()+"'and book_name='"+().trim()+"'";(null, "你借的书还还有7天超期");}try{int rowCount=()-1;int j=rowCount;for(int i=0;i<=rowCount;i++){(j);(j);j=j-1;}rs=(strSql);while()){Vector insertRow=new Vector();(1));(2));(3));(4));(5));(insertRow);}();}catch(SQLException sqle){}catch(Exception ex){}}}}package library;import .*;import .*;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();(new BorderLayout());panel3=new JPanel();(tiplabel);(panel3,;borrowlabel=new JLabel("借阅者姓名",;namelabel=new JLabel("书名",;borrowdate=new JLabel("借书日期",;borrowField=new JTextField(15);nameField=new JTextField(15);dateField=new JTextField(15);panel1=new JPanel();(new GridLayout(3,2));(borrowlabel);(borrowField);(namelabel);(nameField);(borrowdate);(dateField);(panel1,;panel2=new JPanel();(new GridLayout(1,4));clear=new JButton("清空");yes=new JButton("确定");update=new JButton("更新");cancel=new JButton("取消");(this);(this);(this);(this);(clear);(yes);(update);(cancel);(panel2,;setVisible(true);setSize(400,200);}public void actionPerformed(ActionEvent e){if()==clear){("");("");("");}else if()==cancel){();}else if()==yes){try{String strSQL="select student_name,book_name,borrow_date from borrow where student_name='"+().trim()+"'and book_name='"+().trim()+"'";rs=(strSQL);if(!()){(null,"此学生没有借过书或者没有此书");}else{(1));(2));(3));(true);}}catch(Exception ex){}}else if()==update){String strSQL="update borrow set borrow_date='"+().trim()+"' where student_name='"+().trim()+"'and book_name='"+().trim()+"'";if(strSQL)){(null,"更新成功");();();}else{(null,"更新失败");();();}}}}package library;import .*;import .*;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();(new BorderLayout());bookname=new JLabel("书名",;authorname=new JLabel("作者",;press=new JLabel("出版社",;booknamet=new JTextField(15);authornamet=new JTextField(15);presst=new JTextField(15);search=new JButton("查询");exit=new JButton("退出");(this);(this);panel1=new JPanel();(bookname);(booknamet);(authorname);(authornamet);panel2=new JPanel();(press);(presst);(search);(exit);String []name={"书号","书名","出版社","作者","出版日期","价格","图书数目","已借数目","剩余数目","藏书地址"};String [][]data=new String[0][0];defaultModel=new DefaultTableModel(data,name);table=new JTable(defaultModel);(new Dimension(400,80));JScrollPane s=new JScrollPane(table);panel3=new JPanel();(s);(panel1,;(panel2,;(panel3,;}public void actionPerformed(ActionEvent e){if()==exit){();();}else if()==search){String strSQL="selectbook_id,book_name,press,author,press_date,price,book_count,borrowed_count,book_ count-borrowed_count,store_address from book";String strSql=null;if().trim().equals("")&&().trim().equals("")&&().trim().equals("")){strSql=strSQL;}else if().trim().equals("")&&().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='"+().trim()+"'";}else if().trim().equals("")&&().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='"+().trim()+"'";}else if().trim().equals("")&&().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='"+().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='"+().trim()+"'and author='"+().trim()+"'and press='"+().trim()+"'";}try{int rowCount=()-1;int j=rowCount;for(int i=0;i<=rowCount;i++){(j);(j);j=j-1;}rs=(strSql);while()){Vector insertRow=new Vector();(1));(2));(3));(4));(5));(6));(7));(8));(9));(10));(insertRow);}();}catch(SQLException sqle){}catch(Exception ex){}}}}package library;import .*;import .*;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();(new BorderLayout());Calendar cal = ();String cdate = ());namelabel=new JLabel("还书者姓名",;booklabel =new JLabel("书名",;returndatelabel=new JLabel("日期",;returnField=new JTextField(15);(cdate);try{String s="";String strSQL="select student_name from reader where borrow_count!=0";rs=(strSQL);while()){(1));}}catch(SQLException sqle){}catch(Exception ex){}try{String s="";String strSQL="select book_name from borrow where is_returned='否'";rs=(strSQL);while()){(1));}}catch(SQLException sqle){}catch(Exception ex){}panel1=new JPanel();(new GridLayout(3,2));(namelabel);(readername);(booklabel);(bookname);(returndatelabel);(returnField);(panel1,;panel2=new JPanel();(new GridLayout(1,3));clear=new JButton("清除");yes=new JButton("确定");cancel=new JButton("取消");(this);(this);(this);(clear);(yes);(cancel);(panel2,;setVisible(true);setSize(300,200);}public void actionPerformed(ActionEvent e){if()==cancel){();}else if()==clear){("");}else if()==yes){if().equals("")){(null,"没有读者借书");}else if().equals("")){(null,"图书馆没有借过书");}else{try{String strSQL="update borrow set act_returned ='"+().trim()+"',is_returned='是' where student_name='"+()+"' and book_name='"+()+"'";if(strSQL)){(null,"还书完成");strSQL="update reader set borrow_count=borrow_count-1 where student_name='"+()+"'";(strSQL);strSQL="update book set borrowed_count=borrowed_count-1 where book_name='"+()+"'";(strSQL);();();}else{(null,"还书失败");();();}}catch(Exception se){}};import .*;public class bookreturnModify 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 bookreturnModify(){super("修改图书还入信息");c=getContentPane();(new BorderLayout());panel3=new JPanel();(tiplabel);(panel3,;borrowlabel=new JLabel("还书者姓名",;namelabel=new JLabel("书名",;borrowdate=new JLabel("还书日期",;borrowField=new JTextField(15);nameField=new JTextField(15);dateField=new JTextField(15);panel1=new JPanel();(new GridLayout(3,2));(borrowlabel);(borrowField);(namelabel);(nameField);(borrowdate);(dateField);(panel1,;panel2=new JPanel();(new GridLayout(1,4));clear=new JButton("清空");yes=new JButton("确定");update=new JButton("更新");cancel=new JButton("取消");(this);(this);(this);(this);(clear);(yes);(update);(cancel);(panel2,;setVisible(true);setSize(400,200);}public void actionPerformed(ActionEvent e){if()==clear){("");("");("");}else if()==cancel){();}else if()==yes){try{String strSQL="select student_name,book_name,act_returned from borrow where student_name='"+().trim()+"'and book_name='"+().trim()+"'";rs=(strSQL);if(!()){(null,"此学生没有借过书");}else{(1));(2));(3));(true);}}catch(Exception ex){}}else if()==update){String strSQL="update borrow set return_date='"+().trim()+"' where student_name='"+().trim()+"'and book_name='"+().trim()+"'";if(strSQL)){(null,"更新成功");();();}else{(null,"更新失败");();();}}}}package library;import .*;import .*;public class MainWindow extends JFrame implements ActionListener{ JPanel panel1;Container c;JMenuBar MenuB;JMenu system,book,borrow,retu,info,usermag;JMenu student;quals("系统管理员")){(true);(true);(true);(true);(true);(true);(true);}else if().equals("书籍管理员")){(false);(true);(false);(false);(true);(false);(true);}else if().equals("借阅管理员")){(false);(false);(true);(true);(true);(true);(true);}else if().equals("else")){(false);(false);(false);(false);(true);(false);(true);}}public static void main(String []args){MainWindow ss=new MainWindow();}}package library;import .*;import .*;public class Message extends JFrame{DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JTable table=null;DefaultTableModel defaultModel=null;public Message(){super("超期情况");c=getContentPane();(new BorderLayout());String []name={"读者编号","书名","是否超期","剩余天数"};String [][]data=new String[0][0];defaultModel=new DefaultTableModel(data,name);table=new JTable(defaultModel);(new Dimension(400,80));JScrollPane s=new JScrollPane(table);(s);setSize(300,200);setVisible(true);try{String strSQL="select student_name,book_name,is_returned,remain from borrow";rs=(strSQL);while()){Vector insertRow=new Vector();(1));(2));(3));(4));(insertRow);}();}catch(SQLException sqle){}catch(Exception ex){}}}package library;import .*;import .*;public class readeradd extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;JPanel panel1,panel2;JLabel id,name,zj,sex,age,tel,email,borrow,max_borrow,money;JTextField idt,namet,sext,aget,telt,emailt,borrowt,max_borrowt,moneyt;JComboBox zjc;JButton add,cancel;public readeradd(){super("添加读者");c=getContentPane();(new BorderLayout());id=new JLabel("读者编号",;name=new JLabel("读者姓名",;zj=new JLabel("证件类型",;sex=new JLabel("性别",;age=new JLabel("年龄",;tel=new JLabel("电话",;email=new JLabel("邮箱",;borrow=new JLabel("已借数目",;max_borrow=new JLabel("最大借书数",; money=new JLabel("押金",;idt=new JTextField(15);namet=new JTextField(15);sext=new JTextField(15);aget=new JTextField(15);telt=new JTextField(15);emailt=new JTextField(15);borrowt=new JTextField(15);max_borrowt=new JTextField(15); ("7");moneyt=new JTextField(15);zjc=new JComboBox();("学生证");("身份证");("教师证");add=new JButton("添加");cancel=new JButton("取消"); (this);(this);panel1=new JPanel();(new GridLayout(10,2));(id);(idt);(name);(namet);(zj);(zjc);(sex);(sext);(age);(aget);(tel);(telt);(email);(emailt);(borrow);(borrowt);(max_borrow);(max_borrowt);(money);(moneyt);(panel1,;panel2=new JPanel();(add);(cancel);(panel2,;setSize(300,300);setVisible(true);}public void actionPerformed(ActionEvent e){if()==cancel){();();}else if()==add){if().trim().equals("")){(null, "编号不可为空");}else if().trim().equals("")){(null, "姓名不可为空");}else if().trim().equals("")){(null, "性别不能为空");}else if().trim().equals("")){(null, "年龄不能为空");}else if().trim().equals("")){(null, "电话不能为空");}else{try{String strSQL="insert intoreader(student_id,student_name,zj_name,sex,age,tel,email,borrow_count,max_borrow ,deposit) v alues('"+().trim()+"','"+().trim()+"','"+()+"','"+().trim()+"','"+().trim()+"','"+().trim()+"','"+().trim()+"','"+().trim()+"','"+().trim()+"','"+().trim()+"')";if(strSQL)){();(null,"添加读者成功");}else{(null,"添加读者失败");();}();}catch(Exception ex){}}}}}package library;import .*;import .*;public class readerdelete extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager();ResultSet rs;Container c;。

图书管理系统java代码

图书管理系统java代码

项目下的包及类:数据库bookcollection表book(bookID设置为自增)表user表userbook登录注册页面:package bookDB;import java.awt。

*;import java。

awt.event。

ActionEvent;import java.awt。

event。

ActionListener;import javax.swing.*;public class RLogin extends JFrame implements ActionListener{//Container c;String sex;int type;// 创建登录组件JLabel jlabel0 = new JLabel(”登录:”);JLabel jLabel1 = new JLabel("学号(或职工号):");JLabel jLabel2 = new JLabel(”密码:");JTextField userID1 = new JTextField(10);JTextField password1 = new JTextField(10);JButton btn_ok1 = new JButton(); // 创建登录确定按钮// 创建注册组件JLabel jlabel00 = new JLabel("注册:”);JLabel jLabel3 = new JLabel("姓名:");JLabel jLabel4 = new JLabel(”性别:”);JLabel jLabel5 = new JLabel("密码:");JLabel jLabel6 = new JLabel("学号(或职工号):");JLabel jLabel7 = new JLabel("院系:");JLabel jLabel8 = new JLabel("专业:");JLabel jLabel9 = new JLabel(”用户类别:");JTextField name = new JTextField(10);JTextField password2 = new JTextField(10);JTextField ID2 = new JTextField(10);JTextField department = new JTextField(10);JTextField major = new JTextField(10);JRadioButton rb1[]; // 单选按钮,用于设定性别JRadioButton rb2[];//用户类型选择JButton btn_ok2 = new JButton();// 创建注册确定按钮// 构造函数public RLogin(){super("登录/注册:"); // 调用JFrame的构造函数String[] sex = {"男”, ”女" };String[]type = {"本科生","研究生",”老师"};JPanel panel1 = new JPanel(new FlowLayout());// 使用JPanel类创建面板,该类是JComponent类的子类,后者又扩展Container//每个JPanel都是一个Container,因此,可以向JPanel添加包括面板在内的组件//this。

Java编写的简单图书管理系统

Java编写的简单图书管理系统

Java编写的简单图书管理系统主界面代码实现package Library;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;publicclass Login extends JFrame{ privatestaticfinallong serialVersionUID=1L;private JLabel jlUsername;private JLabel jlPwd;private JTextField txtUsername;//用户名private JTextField txtPassword;//密码private JButton jbOk;private JButton jbCancel;public JLabel getJlUsername(){if(jlUsername==null){jlUsername=new JLabel("账号");jlUsername.setForeground(Color.BLACK);jlUsername.setBounds(118,40,85,30);}return jlUsername;}public JLabel getJlPwd(){if(jlPwd==null){jlPwd=new JLabel("密码");jlPwd.setForeground(Color.BLACK);jlPwd.setBounds(118,100,85,30);}return jlPwd;}public JTextField getTxtUsername(){if(txtUsername==null){txtUsername=new JTextField(20);txtUsername.setBounds(180,40,200,30);}return txtUsername;}public JTextField getTxtPassword(){if(txtPassword==null){txtPassword=new JPasswordField(20);txtPassword.setBounds(180,100,200,30);}return txtPassword;}public JButton getJbOk(){if(jbOk==null){jbOk=new JButton("登陆");jbOk.setBounds(150,180,90,30);//jbOk.addActionListener(this);}return jbOk;}public JButton getJbCancel(){if(jbCancel==null){jbCancel=new JButton("取消");jbCancel.setBounds(300,180,90,30);}return jbCancel;}public Login(String title){super(title);//JFrameframe=newJFrame();Container cantainer=this.getContentPane();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);ImageIcon img=new ImageIcon("F:\\Java\\传习\\src\\Library\\ZF`XY`H48I_}U)C4~}M2~C4.jpg");//这是背景图片JLabel imgLabel=new JLabel(img);//将背景图放在标签里。

用java做的一个图书管理系统的源代码

用java做的一个图书管理系统的源代码

用java做的一个图书管理系统的源代码import .*;import .*;public class T{public static void main(String[] args) throws Exception{Connection conn=null;Statement stmt=null;ResultSet rs=null;while(true){Scanner scanner=new Scanner;"请输入用户名:");String username2=();"请输入密码:");String password2=();if(!("")||(""))){try{("");conn=("jdbc:odbc:book","","");String sql="select * from ww where username='"+username2+"'";stmt=();rs=(sql);if()){if("password").equals(password2)){"***欢迎来山东科技大学图书馆管理系统**");while(true){" 1.图书信息");" 2.读者信息");" 3.管理员信息");" 4.借阅信息");" 5.还书信息");" 6.逾期罚款或损坏赔偿信息");出");" 请输入选择功能的序号:");int a=();switch(a){case 1:" 图书信息: ");" 1. 查询图书信息: ");" 2. 插入图书信息: ");" 3. 删除图书信息: ");" 4. 修改图书信息: ");int a1=();switch(a1){case 1:" 欢迎进入图书信息查询系统: ");" 1. 无条件查询图书信息: ");" 2. 条件查询图书信息: ");int d=();switch(d){case 1:int llll=0;无条件查询图书信息: ");String Sql0 = "SELECT * FROM systembook ";rs= (Sql0);while()){String bookID =(1);String bookNo =(2);String bookName =(3);String bookWriter =(4);String bookPub =(5);","+bookNo+","+bookName+","+ bookWriter+","+bookPub);}"是否继续插入yes/no no返回主菜单");String k=();if("yes"))};if("no")){llll=1;};}break;条件查询图书信息: ");" 1. 单条件查询图书信息: ");" 2. 模糊条件查询图书信息: ");" 3. 多表连接查询图书信息: ");" 4. 嵌套查询图书信息: ");" 5. 谓词演算查询");int c12=();switch(c12){case 1:" 1.单条件查询: ");" 1.按图书名编码号查询图书信息: ");int ddd=0;while(ddd!=1){"请输入图书编码号:");String A=();String sql1= "SELECT * FROM systembook WHERE bookID ='"+A+"' ";rs= (sql1);int x=0;while()){String a2 =(1);String b2 =(2);String c2 =(3);String d2 =(4);String e2 =(5);","+b2+" ,"+c2+","+d2+","+e2);x++;}if(x==0){"查无此书,请重新输入");else{"是否继续按姓名查询yes/no no返回主菜单");String k=();if("yes")){};if("no")){ddd=1;};};}break;case 2:" 2.模糊查询图书信息: ");int dc=0;while(dc!=1){"请用户输入图书名字中的模糊关键字");String E=();String sq123= "SELECT * FROM systembook WHERE bookName LIKE'"+E+"%'";rs= (sq123);int z=0;while()){String a2 =(1);String b2 =(2);String c2 =(3);String d2 =(4);String e2 =(5);","+b2+" ,"+c2+","+d2+","+e2);z++;}if(z==0){"查无此书,请重新输入");}else{"是否继续输入图书名字中的模糊关键字yes/no no 返回主菜单");String k=();if("yes")){};if("no")){dc=1;表连接查询查询图书信息: ");int dq=0;while(dq!=1){"查询逾期罚款或是赔偿表中的读者的相关信息");"请输入逾期罚款或是赔偿的读者编码号");String F=();String sq1234= "SELECT * FROM fine,borrowbook,systemreader WHERE = AND = AND ='"+F+"' ";rs= (sq1234);int n=0;while()){String a2 =(1);String b2 =(2);String c2 =(3);String d2 =(4);String e2 =(5);","+b2+" ,"+c2+","+d2+","+e2);n++;}if(n==0){"查无此人,请重新输入");}else{"是否继续输入图书名字中的模糊关键字yes/no no返回主菜单");if("yes")){};if("no")){ddd=1;};}}break;case 4:" 4.嵌套查询图书信息: ");int dq1=0;while(dq1!=1){"查询某读者所在年级女读者的相关信息");"请输入某读者的读者编号");String G=();String sq12345= "SELECT * FROM systemreader WHERE reaGrade=(SELECT reaGrade FROM systemreader WHERE reaID='"+G+"') AND reasex='女'";rs= (sq12345);int m=0;while()){String a2 =(1);String b2 =(2);String c2 =(3);String d2 =(4);String e2 =(5);","+b2+" ,"+c2+","+d2+","+e2);m++;}if(m==0){"查无此书,请重新输入");}else{"是否继续输入读者编号yes/no no返回主菜单");if("yes")){};if("no")){d=1;};}}break;case 5:" 5. 谓词演算查询:");int dq1123=0;while(dq1123!=1){"查询借阅了某本书的读者的相关信息");"请输入该书的名字");String H=();String sq123456= "SELECT * FROM systemreader WHERE reaID IN (SELECT reaID FROM borrowbook WHERE bookName='"+H+"')";rs= (sq123456);int l=0;while()){String a2 =(1);String b2 =(2);String c2 =(3);String d2 =(4);String e2 =(5);","+b2+" ,"+c2+","+d2+","+e2);l++;}if(l==0){"查无此人,请重新输入");}else{"是否继续输入图书名字yes/no no返回主菜单");String k=();if("yes")){} ;if("no")){d=1;};}}break;}查询图书信息: ");String Sql = "SELECT * FROM systembook ";rs= (Sql);while()){插入图书信息: ");"请按顺序插入图书条码号,图书索书号,图书名字,图书作者,图书出版社");String str=();String []splitst=(",");String a11=splitst[0];String a12=splitst[1];String a13=splitst[2];String a14=splitst[3];String a15=splitst[4];String insertSql="INSERT INTO systembook(bookID,bookNo,bookName,bookWriter,bookPub)VALUES('"+a11+"','"+a12+"','"+a13+"','"+a14+"','"+a15+"')";int i=(insertSql); 删除图书信息: ");"请输入要删除的图书编号:");String Str=();String []Splitst=(",");String b3=Splitst[0];String sql1="SELECT * FROM systembook where bookID='"+b3+"'";rs= (sql1);int kkk=0;while()){String a22 =(1);String b22 =(2);String c22 =(3);String d22 =(4);String e22 =(5);String f22 =(6);","+b22+" ,"+c22+","+d22+","+e22+","+f22);kkk++;}if(kkk==0){"没有这本书,请重新输入");}else{{String deleSql= "DELETE FROM systembook WHERE bookID='"+b3+"'";int p=(deleSql); 修改图书信息: ");"请输入修改的图书ID ");String S=();String sql1="SELECT * FROM systembook where bookID='"+S+"'";rs= (sql1);int lll=0;while()){String a222 =(1);String b222 =(2);String c222 =(3);String d222 =(4);String e222 =(5);String f222 =(6);","+b222+" ,"+c222+","+d222+","+e222+","+f222);lll++;}if(lll==0){"没有这本书,请重新输入");}else{"要将书名改为");String bbb=();String updateSql1="UPDATE systembook SET bookName='"+bbb+"' WHERE bookID='"+S+"'";int hh=(updateSql1); 查询读者信息: ");" 2. 插入读者信息: ");" 3. 删除读者信息: ");" 4. 修改读者信息: " );int b1=();switch(b1){case 1:" 1. 查询读者信息: ");String ssql = "SELECT * FROM systemreader ";rs= (ssql);while()){插入读者信息: ");"请按顺序插入借书卡证号读者名字读者学号读者性别读者LBID 读者类型读者学院读者年级读者专业办证日期");String str=();String []splitst=(",");String b11=splitst[0];String b12=splitst[1];String b13=splitst[2];String b14=splitst[3];String b15=splitst[4];String b16=splitst[5];String b17=splitst[6];String b18=splitst[7];String b19=splitst[8];String b20=splitst[9];String insertSql="INSERT INTO systemreader(reaID,reaName,reaNo,reaSex,reaLBID,reaType,reaDep,reaGrade,reaPre,reaDate) VALUES('"+b11+"','"+b12+"','"+b13+"','"+b14+"','"+b15+"','"+b16+"','"+b17+"','"+b18+"','"+b19+"' ,'"+b20+"')";int n=(insertSql); 删除读者信息: ");"请输入要删除的读者证号:");String Str=();String []Splitst=(",");String r=Splitst[0];String sql1="SELECT * FROM systemreader where reaID='"+r+"'";rs= (sql1);int kkk=0;while()){String a22 =(1);String b22 =(2);String c22 =(3);String d22 =(4);String e22 =(5);String f22 =(6);String g22 =(7);String h22 =(8);String i22 =(9);","+b22+" ,"+c22+","+d22+","+e22+","+f22+","+g22+","+h22+","+i22);kkk++;}if(kkk==0){"没有这个读者,请重新输入");}else{修改读者信息: ");"请输入修改以后的读者的ID ");String S=();查询管理员信息: ");" 2. 插入管理员信息: ");" 3. 删除管理员信息: ");" 4. 修改管理员信息: ");" 5. 返回上一级");int c11=();switch(c11){case 1:" 1. 查询管理员信息: ");String Ssql = "SELECT * FROM manager ";rs= (Ssql);while()){插入管理员信息: ");"请按顺序插入管理员的编号,管理员的姓名,管理员的性别,所管书库,电话,地址");String str=();String []splitst=(",");String a11=splitst[0];String a12=splitst[1];String a13=splitst[2];String a14=splitst[3];String a15=splitst[4];String a16=splitst[5];String insertSql="INSERT INTO manager(mID,mName,mSex,mAuth,mTeleph,mAddre)VALUES('"+a11+"','"+a12+"','"+a13+"','"+a14+"','"+a15+"','"+a16+"')";int i=(insertSql); 删除管理员信息: ");"请输入要删除的管理员编号:");String Str=();String []Splitst=(",");String b3=Splitst[0];String sql1="SELECT * FROM manager where mID='"+b3+"'";rs= (sql1);int kkk=0;while()){String a22 =(1);String b22 =(2);String c22 =(3);String d22 =(4);String e22 =(5);String f22 =(6);","+b22+" ,"+c22+","+d22+","+e22+","+f22);kkk++;}if(kkk==0){"没有这个管理员,请重新输入");}else{修改管理员信息: ");"请输入要修改的管理员编号:");String S=();String []Ssplitst=(",");String c1=Ssplitst[0];String sql1="SELECT * FROM manager where mID='"+S+"'";rs= (sql1);int lll=0;while()){String a222 =(1);String b222 =(2);String c222 =(3);String d222 =(4);String e222 =(5);String f222 =(6);","+b222+" ,"+c222+","+d222+","+e222+","+f222);lll++;}if(lll==0){"没有这个管理员,请重新输入");}else{查询图书借阅信息信息: ");" 2. 插入图书借阅信息: ");" 3. 删除图书借阅信息: ");" 4. 修改图书借阅信息: ");" 5. 返回上一级");int d=();switch(d){case 1:" 1. 查询图书借阅信息: ");String Sql4 = "SELECT * FROM borrowbook ";rs= (Sql4);while()){String bookID =(1);String reaID =(2);String outDate =(3);String yhDate =(4);","+reaID+","+outDate+","+yhDate);}break;case 2:int zz=0;while(zz!=1){" 2. 插入图书借阅信息: ");"请按顺序插入图书的的编号,读者编号,图书借出日期,图书归还日期");String str=();String []splitst=(",");String a11=splitst[0];String a12=splitst[1];String a13=splitst[2];String a14=splitst[3];删除图书借阅信息: ");"请输入要删除的图书条码号:");String Str=();String []Splitst=(",");String b3=Splitst[0];String sql1="SELECT * FROM borrowbook where bookID='"+b3+"'";rs= (sql1);int kkk=0;while()){String a22 =(1);String b22 =(2);String c22 =(3);String d22 =(4);修改借阅读书信息: ");"请输入要修改的图书的ID ");String S=();String []Ssplitst=(",");String c1=Ssplitst[0];String sql1="SELECT * FROM borrowbook where bookID='"+S+"'";rs= (sql1);int lll=0;while()){String a222 =(1);String b222 =(2);String c222 =(3);String d222 =(4);查询还书信息: ");" 2. 插入还书信息: ");" 3. 删除还书信息: ");" 4. 修改还书信息: ");" 5. 返回上一级");int e=();switch(e){case 1:" 1. 查询还书信息: ");sql = "SELECT * FROM return ";rs= (sql);while()){String reaID =(1);String bookID =(2);String bookName =(3);String inDate =(4);","+bookID+","+bookName+","+ inDate);}break;case 2:" 2. 插入还书信息: ");"请按顺序插入读者卡号,图书编号,图书名称,还书日期");String str=();String []splitst=(",");String e1=splitst[0];String e2=splitst[1];String e3=splitst[2];String e4=splitst[3];String insertSql="INSERT INTO returnbook(reaID,bookID,bookName,inDate) VALUES('"+e1+"','"+e2+"','"+e3+"','"+e4+"')";int h=(insertSql); 删除还书书信息: ");"请输入要删除的读者证号:");String Str=();String []Splitst=(",");String f3=Splitst[0];String deleSql= "DELETE FROM return WHERE reaID='"+f3+"'";int w=(deleSql); 查询罚款信息: ");" 2. 插入罚款信息: ");" 3. 删除罚款信息: ");" 4. 修改罚款信息: ");int g=();switch(g){case 1:" 1. 查询罚款信息: ");String Sssql = "SELECT * FROM fine ";rs= (Sssql);while()){插入罚款信息: ");"请按顺序插入读者卡号,图书编号,借书日期,超出日期,应缴罚款");String str=();String []splitst=(",");String g1=splitst[0];String g2=splitst[1];String g3=splitst[2];String g4=splitst[3];String g5=splitst[4];删除罚款信息: ");"请输入要删除的读者证号:");String Str=();String []Splitst=(",");String r=Splitst[0];String deleSql= "DELETE FROM fine WHERE reaID='"+r+"'";int x=(deleSql); 查询借阅历史信息: ");" 2. 插入借阅历史信息: ");" 3. 删除借阅历史信息: ");" 4. 修改借阅历史信息: ");" 5. 返回上一级");int h=();switch(h){" 1. 查询历史借阅信息: ");String Sql7 = "SELECT * FROM borrowhistory ";rs= (Sql7);while()){String bookID =(1);String reaID =(2);String bookName=(3);String bookWriter=(4);String outDate =(5);String yhDate =(6);","+reaID+","+bookName+","+bookWriter+","+outDate+","+yhDate);}break;case 2:" 2. 插入图书历史借阅信息: ");"请按顺序插入图书的的编号,读者编号,,图书借出日期,图书归还日期");String str=();String []splitst=(",");String a11=splitst[0];String a12=splitst[1];String a13=splitst[2];String a14=splitst[3];删除图书历史借阅信息: ");"请输入要删除的图书条码号:");String Str=();String []Splitst=(",");String d3=Splitst[0];String deleSql= "DELETE bookID FROM borrowhistory WHERE bookID='"+d3+"'";int k=(deleSql); 修改图书借阅历史信息: ");"请输入要修改的图书的借出日期");String S=();String []Ssplitst=(",");String c1=Ssplitst[0];String updateSql="UPDATE borrow SET outDate='"+c1+"' WHERE bookName='数据库'";int t=(updateSql); //返回记录影响的条数if(t!=0){"修改成功!");}break;}}}}}else{"非法用户!");}}catch(SQLException e) {();}//();();();}}}}。

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

ResultSet.CONCUR_READ_ONLY);
} catch (Exception ex) {
System.out.println(ex);
}
}
/* 增加一行用户名、密码数据 */
public boolean insertData(String id, String name, String where, String
+ name + "'");
st();
// 把rs的指针移到最后一行
if (rs.getRow() == 0) {
return null;
} else {
String pswdDB = rs.getString("Pswd");
ResultSet.CONCUR_READ_ONLY);
} catch (Exception ex) {
System.out.println(ex);
}
}
/*
* 增加一行用户名、密码数据 public boolean insertData(String id,String name,String
// 加载JDBC-ODBC桥驱动程序
String url = "jdbc:odbc:Book";
con = DriverManager.getConnection(url);
// 连接数据库HDB //stmt提供一个创建SQL查询、执行查询、得到返回结果的空间
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
// 获取rs结果集中的pswd列的数据
return pswdDB;
}
} catch (Exception e) {
System.out.println(e);
return null;
}
}
/* 增加一行用户名、密码数据 */
public boolean insertData(String name, String pswd) {
try {
int rtn = stmt.executeUpdate
("DELETE FROM Book WHERE id='" + id + "'");
if (rtn != 0) {
return true;
} else {
return false;
//用户登陆数据库代码:
import java.sql.*;
class Database {
Connection con;
ResultSet rs;
Statement stmt;
public Database() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
* where,String
*
* price,String date){ try{ int rtn = stmt.executeUpdate( "INSERT INTO
* BookIn VALUES('" + id +
*
* "','" + name + "','" + where + "','" + price + "','" + date + "')" );
*
* if( rtn != 0 ){ return true; } else{ return false; } } catch(Exception
* e){ System.out.println( e ) ; return false; } }
*/
}
//出库数据库代码:
String url = "jdbcdbc:Book";
con = DriverManager.getConnection(url);
// 连接数据库HDB //stmt提供一个创建SQL查询、执行查询、得到返回结果的空间
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
}
}
catch (Exception e) {
System.out.println(e);
return false;
}
}
/*
* public boolean Select(String id){ try{ int rtn =
* stmt.executeUpdate("SELECT * FROM BookIn WHERE id='"+id+"'"); if( rtn !=
*
* if( rtn != 0 ){ return true; } else{ return false; } } catch( Exception
* et ) { System.out.println( et ) ; return false; } }
*/
public boolean deleteData(String id) {
}
/* 根据用户名,获取密码 */
public String getPswd(String name) {
try {
// rs为执行SQL语句所查询的结果赋给结果集对象rs
rs = stmt.executeQuery("SELECT pswd FROM User WHERE Name = '"
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
class BookDatabase1 {
Connection con;
price, String date) {
try {
int rtn = stmt.executeUpdate("INSERT INTO Book VALUES('" + id
+ "','"
+ name + "','" + where + "','" + price + "','" + date
if (rtn != 0)
return true;;
}
return false;
} catch (Exception et) {
System.out.println(et);
return false;
try {
String s = getPswd(name);
if (s == null) {
int rtn = stmt.executeUpdate("INSERT INTO User VALUES('" + name
+ "','" + pswd + "')");
* System.out.println( e ) ; return false; } } public boolean Select(String
* id){ try{ int rtn = stmt.executeUpdate("SELECT * FROM BookIn WHERE
* id='"+id+"'");
Connection con;
Statement stmt = null;
ResultSet result = null;
String sql = null;
public BookDatabase2() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ResultSet.CONCUR_READ_ONLY);
} catch (Exception ex) {
}
}
}
//进库数据库代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
class BookDatabase {
* 0 ){ return true; } else{ return false; } } catch(Exception e){
* System.out.println( e ) ; return false; } }
*/
}
//查询数据库代码;
import java.awt.*;
相关文档
最新文档