基于mysql的简单图书管理系统_图书管理系统

基于mysql的简单图书管理系统_图书管理系统因为这两天要做数据库课设但是本人又很菜就做了一个简单的系统,简单的实现了增删改查,数据库用的是mysql,但是数据库的权限功能都没有实现,就是程序比较简陋,新手程序员可以参考一下~题目内容图书管理系统设计说明(1) 开发内容做出图书管理系统的需求分析,概念结构分析,逻辑结构分析,数据库的实施及维护。开发要求○1进行新书入库、现有图书信息修改以及删除;②能够实现对读者基本信息的查询和编辑管理;③能够实现预约功能;④能够实现借阅信息的查询功能;(2) 开发环境及工具系统前台开发软

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

因为这两天要做数据库课设但是本人又很菜就做了一个简单的系统,简单的实现了增删改查,数据库用的是mysql,但是数据库的权限功能都没有实现,就是程序比较简陋,新手程序员可以参考一下~

题目内容

图书管理系统
设计说明
(1) 开发内容
做出图书管理系统的需求分析,概念结构分析,逻辑结构分析,数据库的实施及维护。
开发要求
○1 进行新书入库、现有图书信息修改以及删除;
② 能够实现对读者基本信息的查询和编辑管理;
③ 能够实现预约功能;
④ 能够实现借阅信息的查询功能;
(2) 开发环境及工具
系统前台开发软件:My Eclipse或其他
系统后台管理软件:SQL server management studio 2008或 其他
系统开发语言:JAVA或其他
(3) 系统功能简介
能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
   1) 图书信息的录入、删除及修改。
   2) 图书信息的多关键字检索查询。
   3) 图书的出借、返还、预约。

功能展示

主界面
在这里插入图片描述

管理员界面
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

学生界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主要代码:

package test1;//进行数据库的连接

import java.sql.Connection;
import java.sql.DriverManager;

public class lianjie { 
   
    public  static Connection connection() { 
   


        String driver = "com.mysql.jdbc.Driver";
        String URL = "jdbc:mysql://localhost:3306/ts?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false";
        Connection con = null;
        try { 
   
            Class.forName(driver);
        } catch (java.lang.ClassNotFoundException el) { 
   
            System.out.println("无法加载驱动.");
        }
        try { 
   
            con = DriverManager.getConnection(URL, "root", "123456");//这里输入你自己安装MySQL时候设置的用户名和密码,用户名默认为root
            System.out.println("连接成功.");
        } catch (Exception el) { 
   
            System.out.println("连接失败:" + el.getMessage());
        }

          return  con;
    }
}
package test1;//管理员添加学生信息

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;

public class Add extends JFrame  { 
   //添加学生信息类,输入学生的信息进行添加




    private static final long serialVersionUID = -1928970409928880648L;

    JLabel jlnumber = new JLabel("学号:");
    JLabel jlpass = new JLabel("密码:");
    JLabel jlname = new JLabel("姓名:");
    JLabel jlsex = new JLabel("性别:");
    JLabel jlbirthday = new JLabel("出生日期:");
    JLabel jldepartment = new JLabel("学院:");

    JTextField jtnumber = new JTextField("",20);
    JTextField jtpass = new JTextField("",20);
    JTextField jtname = new JTextField("",20);
    JTextField jtsex = new JTextField("",20);
    JTextField jtbirthday = new JTextField("",20);
    JTextField jtdepartment = new JTextField("",20);

    JButton buttonadd = new JButton("添加");
    JButton buttonreturn = new JButton("返回");


    public Add() { 
   
        //添加
        JPanel jpnumber = new JPanel();
        JPanel jppass = new JPanel();
        JPanel jpname = new JPanel();
        JPanel jpsex = new JPanel();
        JPanel jpbirthday = new JPanel();
        JPanel jpdepartment = new JPanel();
        JPanel jpforbutton = new JPanel(new GridLayout(1,1));

        jpnumber.add(jlnumber);
        jpnumber.add(jtnumber);

        jppass.add(jlpass);
        jppass.add(jtpass);

        jpname.add(jlname);
        jpname.add(jtname);

        jpsex.add(jlsex);
        jpsex.add(jtsex);

        jpbirthday.add(jlbirthday);
        jpbirthday.add(jtbirthday);

        jpdepartment.add(jldepartment);
        jpdepartment.add(jtdepartment);

        jpforbutton.add(buttonadd);
        jpforbutton.add(buttonreturn);

        //数据库的连接,为添加按钮增加监听事件
        buttonadd.addActionListener(new ActionListener(){ 
   
            public void actionPerformed(ActionEvent e) { 
   


                setVisible(false);

                Connection con = lianjie.connection();


                Statement stat = null;
                PreparedStatement ps=null;
                String sql = "INSERT INTO student(number,password,name,sex,birthday,department) "
                        + "values(?,?,?,?,?,?)";


                try { 
   
                    ps=con.prepareStatement(sql);//执行sql语句


                ps.setString(1,jtnumber.getText());
                ps.setString(2,jtpass.getText());
                ps.setString(3,jtname.getText());
                ps.setString(4,jtsex.getText());
                ps.setString(5,jtbirthday.getText());
                ps.setString(6,jtdepartment.getText());


                ps.executeUpdate();

                } catch (SQLException e1) { 
   
                    e1.printStackTrace();
                }
                finally{ 
   
                    try{ 
   
                        con.close();
                        System.out.println("MySQL 关闭成功");
                        JOptionPane.showMessageDialog(null, "添加成功啦!!");//提示窗口
                    }catch (SQLException c){ 
   
                        System.out.println("MySQL 关闭失败 ");
                        c.printStackTrace();
                        JOptionPane.showMessageDialog(null, "添加失败啦!!");//提示窗口
                    }

                }

            }
        });



//为返回按钮添加监听事件
        buttonreturn.addActionListener(new ActionListener(){ 
   
            public void actionPerformed(ActionEvent e){ 
   
                setVisible(false);

            }
        });


        this.setTitle("添加学生信息");
        this.setLayout(new GridLayout(9,1));
        this.add(jpnumber);
        this.add(jppass);
        this.add(jpname);
        this.add(jpsex);
        this.add(jpbirthday);
        this.add(jpdepartment);
        this.add(jpforbutton);
        this.setLocation(400,300);
        this.setSize(350,300);
        this.setVisible(true);

    }


}


package test1;//管理员修改学生信息

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
public class Change extends JFrame { 
   //修改学生信息的类
    private static final long serialVersionUID = -1928970409928880648L;

    JLabel jlnumber = new JLabel("学号:");
    JLabel jlpass = new JLabel("密码:");
    JLabel jlname = new JLabel("姓名:");
    JLabel jlsex = new JLabel("性别:");
    JLabel jlbirthday = new JLabel("出生日期:");
    JLabel jldepartment = new JLabel("学院:");

    JTextField jtnumber = new JTextField("",20);
    JTextField jtpass = new JTextField("",20);
    JTextField jtname = new JTextField("",20);
    JTextField jtsex = new JTextField("",20);
    JTextField jtbirthday = new JTextField("",20);
    JTextField jtdepartment = new JTextField("",20);

    JButton buttonchange = new JButton("修改");
    JButton buttonreturn = new JButton("返回");


    public Change() { 
   
        JPanel jpnumber = new JPanel();
        JPanel jppass = new JPanel();
        JPanel jpname = new JPanel();
        JPanel jpsex = new JPanel();
        JPanel jpbirthday = new JPanel();
        JPanel jpdepartment = new JPanel();
        JPanel jpforbutton = new JPanel(new GridLayout(1,1));

        jpnumber.add(jlnumber);
        jpnumber.add(jtnumber);

        jppass.add(jlpass);
        jppass.add(jtpass);

        jpname.add(jlname);
        jpname.add(jtname);

        jpname.add(jlname);
        jpname.add(jtname);

        jpsex.add(jlsex);
        jpsex.add(jtsex);

        jpbirthday.add(jlbirthday);
        jpbirthday.add(jtbirthday);

        jpdepartment.add(jldepartment);
        jpdepartment.add(jtdepartment);

        jpforbutton.add(buttonchange);
        jpforbutton.add(buttonreturn);

        buttonchange.addActionListener(new ActionListener(){ 
   
            public void actionPerformed(ActionEvent e){ 
   



                String number = jtnumber.getText();
                String name = jtname.getText();
                String sex = jtsex.getText();
                String birthday = jtbirthday.getText();
                String department = jtdepartment.getText();
                String password = jtpass.getText();

                Connection con = lianjie.connection();
                ResultSet res = null;
                Statement stat = null;

                String sql = "SELECT NUMBER FROM student;";

                try { 
   
                    stat=con.createStatement();
                    res=stat.executeQuery(sql);
                    boolean flag=false;

                    while (res.next())
                    { 
   

                        //change
                        if (res.getString(1).equals(number)) { 
   

                            String sql2 = "UPDATE student SET name='" + name + "' WHERE number='" + jtnumber.getText() + "'";
                            String sql6 = "UPDATE student SET password='" + password+ "' WHERE number='" + jtnumber.getText() + "'";
                            String sql3 = "UPDATE student SET sex='" + sex + "' WHERE number='" + jtnumber.getText() + "'";
                            String sql4 = "UPDATE student SET birthday='" + birthday + "' WHERE number='" + jtnumber.getText() + "'";
                            String sql5 = "UPDATE student SET department='" + department + "' WHERE number='" + jtnumber.getText() + "'";

                            JOptionPane.showMessageDialog(null, "修改学生信息成功!!");//提示窗口
                            flag=true;

                            try { 
   
                                stat = con.createStatement();
                                stat.executeUpdate(sql2);
                               stat.executeUpdate(sql6);
                                stat.executeUpdate(sql3);
                                stat.executeUpdate(sql4);
                                stat.executeUpdate(sql5);

                                jtname.setText("");
                                jtsex.setText("");
                                jtbirthday.setText("");
                                jtdepartment.setText("");
                                jtpass.setText("");


                                break;
                            } catch (SQLException g) { 
   

                                g.printStackTrace();
                            }
                        }


                        }
                        if (flag==false){ 
   
                            JOptionPane.showMessageDialog(null, "修改失败啦,请输入正确的学号!!");//提示窗口
                        }
                } catch (SQLException e1) { 
   
                    e1.printStackTrace();
                } finally { 
   
                    try { 
   
                        con.close();
                    } catch (SQLException e1) { 
   
                        e1.printStackTrace();
                    }
                }


            }



        });


        buttonreturn.addActionListener(new ActionListener(){ 
   
            public void actionPerformed(ActionEvent e){ 
   
                setVisible(false);
            }
        });

        this.setTitle("修改学生信息");
        this.setLayout(new GridLayout(9,1));
        this.add(jpnumber);
        this.add(jppass);
        this.add(jpname);
        this.add(jpsex);
        this.add(jpbirthday);
        this.add(jpdepartment);
        this.add(jpforbutton);
        this.setLocation(400,300);
        this.setSize(350,300);
        this.setVisible(true);


    }



}

package 数据库课设;//学生预约图书
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class 预约 extends JFrame { 
   
      JButton buttonbook=new JButton("预约");
      JButton buttonreturn=new JButton("返回");
      JTextField book = new JTextField("",20);
      JLabel label = new JLabel("(输入完整图书名称)");
      public 预约(String sid) { 
   
    	  super("预约");
    	  this.setSize(800,600);
          this.setLayout(null);
          this.setLocation(100,50);
          add(buttonreturn);
          add(buttonbook);
          add(book);
          add(label);
          buttonbook.setBounds(10, 10, 100, 80);
          buttonreturn.setBounds(600, 10, 100, 80);
          book.setBounds(400, 10, 100, 80);
          label.setBounds(200,10,200,80);
          this.setVisible(true);
          Connection con=连接.MyConnection();
          // 建立查询条件
          Statement sql;
          ResultSet rs;
          try { 
   
        	  sql=con.createStatement();
          }
          catch(SQLException e) { 
   
  	        System.out.println(e);
          }
          buttonreturn.addActionListener(new ActionListener(){ 
   
              public void actionPerformed(ActionEvent e){ 
   
                  setVisible(false);

              }
          });
          buttonbook.addActionListener(new ActionListener(){ 
   
              public void actionPerformed(ActionEvent e){ 
   
            	  
            	  
              	 String str=book.getText();
              	 String s;
              	 try { 
   
              		 Connection con=连接.MyConnection();
              		 Statement sql=con.createStatement();
              		 ResultSet rs;
              	     rs=sql.executeQuery("SELECT * FROM tushu WHERE BookName LIKE '"+str+"'");
              	     rs.next();
              	     s=rs.getString(1);
              	    	
              	     int a=rs.getInt(6);
              	     if(a==0) { 
   
               	    	JOptionPane.showMessageDialog(null, "预约失败,此书已全部借出", "错误",JOptionPane.WARNING_MESSAGE);
              	     }
              	     else { 
   
              	     int count=sql.executeUpdate("UPDATE tushu set Count=Count-1 WHERE BookID='"+s+"'");
              	     }
              	     if(a==0) { 
   
              	    	int count1=sql.executeUpdate("UPDATE tushu set COM='已借完' WHERE BookID='"+s+"'");
              	     }
              	     else { 
   
              	    	
              	    	sql.executeUpdate("INSERT INTO Search VALUES('" + sid + "','" + s + "')");
              	    	JOptionPane.showMessageDialog(null, "预约成功!");
             
              	     }
              }
              	catch(SQLException e1) { 
   
              		System.out.println(e1);
              		JOptionPane.showMessageDialog(null, "无此书", "错误",JOptionPane.WARNING_MESSAGE);
                }
              }
              });
      }

    }


package 数据库课设;//学生归还图书
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class 归还 extends JFrame{ 
   
	String str;
	JButton buttonback=new JButton("归还");
	JButton buttonreturn=new JButton("返回");
	JTextField back = new JTextField("",20);
	JLabel label = new JLabel("(请输入完整图书名称)");
	String s=back.getText();
    public 归还(String sid) { 
   
  	    super("归还");
  	    this.setSize(800,600);
        this.setLayout(null);
        this.setLocation(100,50);
        add(buttonreturn);
        add(buttonback);
        add(back);
        add(label);
        buttonback.setBounds(10, 10, 100, 80);
        buttonreturn.setBounds(600, 10, 100, 80);
        back.setBounds(400, 10, 100, 80);
        label.setBounds(200,10,200,80);
        this.setVisible(true);
        Connection con=连接.MyConnection();
        // 建立查询条件
        Statement sql;
        ResultSet rs;
        try { 
   
        	sql=con.createStatement();        	
        }
        catch(SQLException e) { 
   
  	        System.out.println(e);
          }
        buttonreturn.addActionListener(new ActionListener(){ 
   
            public void actionPerformed(ActionEvent e){ 
   
                setVisible(false);

            }
        });
        buttonback.addActionListener(new ActionListener(){ 
   
            public void actionPerformed(ActionEvent e){ 
   
          	    String s=back.getText();
          	    boolean flag=false;
          	  Connection con=连接.MyConnection();
 		        Statement sql;
				try { 
   
					sql = con.createStatement();
				} catch (SQLException e2) { 
   
					// TODO 自动生成的 catch 块
					e2.printStackTrace();
				}
 		        ResultSet rs;
				ResultSet rst;
				String sss;

          	    try { 
   
          	    	sql = con.createStatement();
       		        rs=sql.executeQuery("select bookname,tushu.bookid FROM tushu,Search WHERE tushu.bookid=search.bookid and Studentid='"+sid+"'");
       		        while(rs.next()) { 
   
       		        	String ss=rs.getString(1);
       		        	sss=rs.getString(2);
       		        	if(ss.equals(s)) { 
   
       		        		flag=true;
       		        		str=sss;
       		        		JOptionPane.showMessageDialog(null, "归还成功!");
       		        		
       		        		
       		        	}
       		           }
       		        if(flag==false) { 
    
		        		JOptionPane.showMessageDialog(null, "未借此书", "错误",JOptionPane.WARNING_MESSAGE);
		        	}
       		        else{ 
   
								sql.executeUpdate("UPDATE tushu set Count=Count+1 WHERE BookID='" + str+ "'");
							}


       		      
       		         sql.execute("DELETE FROM Search WHERE Search.BookID In(select t.bookid from (select tushu.bookid from search,tushu where BookName = '"+s+"'and search.BookID=tushu.BookID) as t) and Studentid='"+sid+"'");
			}
          	    
          	  catch(SQLException e1) { 
   
          		    System.out.println(e1);
            		JOptionPane.showMessageDialog(null, "未借此书", "错误",JOptionPane.WARNING_MESSAGE);
              }
            }
            });
    }


}


package menu;//菜单页面选择学生or管理员

import test1.login;
import 数据库课设.学生登录;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

  public class menu extends JFrame{ 
   


      JPanel jp3;
     JButton jb1,jb2;
     public menu(){ 
   

         
         jb1 = new JButton("学生");
         jb2 = new JButton("管理员");
         jb1.setBounds(100, 80, 80, 50);
         jb2.setBounds(100, 180, 80, 50);
         jp3 = new JPanel();
         //String path="a.png";
         this.setLayout(null);
         jp3.setLayout(null);
         ImageIcon background = new ImageIcon("src/a.png");
         JLabel back=new JLabel(background);
         jp3.setBounds(0, 0, 800, 600);
         back.setBounds(0, 0, background.getIconWidth(),background.getIconHeight());	

         
        
         
         jp3.add(jb1,new Integer("100"));
         jp3.add(jb2,new Integer("100"));
         jp3.add(back,new Integer("-100"));
         
         this.add(jp3);
         Point p = new Point(450, 300  );
         this.setSize(739, 413);
         this.setLocation(p);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.setVisible(true);
         this.setTitle("图书馆管理系统");
         this.setResizable(false);
             
       
         jb1.addActionListener(new ActionListener(){ 
   
         
         public void actionPerformed(ActionEvent e) { 
   

             new 学生登录();
         }

         });
         
         jb2.addActionListener(new ActionListener(){ 
   
             
             public void actionPerformed(ActionEvent e) { 
   

       new login();
             }

             });
        
    }
     public static void main(String[] args){ 
   
         new menu();
     }
 }

完整源码有空上传~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181590.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • openssl 创建pfx证书

    openssl 创建pfx证书在存储证书时,为了不被泄露,一般证书的密钥不直接以文件形式(.key文件)存储,我们可以将证书文件和密钥文件合并生成pfx个人正式格式。opensslpkcs12-export-inmy.cer-inkeymy.key-outmy.pfx

  • 快速排序法——quicksort in java

    快速排序法——quicksort in java

  • 移动手机app开发

    移动手机app开发App开发,是指专注于手机应用软件开发与服务。App是application的缩写,通常专指手机上的应用软件,或称手机客户端。另外目前有很多在线app开发[1]平台,比如应用之星平台很好用。App开发,是指专注于手机应用软件开发与服务。App是application的缩写,通常专指手机上的应用软件,或称手机客户端。苹果公司的Appstore开创了手机软件业发展的新篇章,使得第三方软

  • HBase实战:记一次Safepoint导致长时间STW的踩坑之旅

    HBase实战:记一次Safepoint导致长时间STW的踩坑之旅本文记录了HBase中Safepoint导致长时间STW此问题的解决思路及办法。上篇文章回顾:HBaseReplication详解过程记录现象:小米有一个比较大的公共离线HBase集群,用户很多,每天有大量的MapReduce或Spark离线分析任务在进行访问,同时有很多其他在线集群Replication过来的数据写入,集群因为读写压力较大,且离线分析任务对延迟不…

  • 2017 主流手机分辨率与尺寸

    2017 主流手机分辨率与尺寸主流手机分辨率与尺寸1、小米小米1:  480×854   4.0英寸小米2:  720×1280  4.3英寸小米3:  1080×1920 5.0英寸小米4:  1080×1920 5.0英寸小米note:1080×1920 5.7英寸2、华为华为p7: 

  • 深度学习基础之-2.6标签值归一化

    深度学习基础之-2.6标签值归一化提出问题在计算Loss时,会达到172.287,337.246这样大的数值,一般Loss都应该小于1.解决问题标签值也归一化公式如下:(1)ynew=y−yminymax−ymin=y−yminyrangey_{new}=\frac{y-y_{min}}{y_{max}-y_{min}}=\frac{y-y_{min}}{y_{range}}\tag{1}ynew​=ymax​−…

    2022年10月10日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号