java GUI 学生图书管理简单示例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28929579/article/details/53562552

- mysql数据库建表:

1.book表
2.bs借书记录表
3.std学生表
4.dl登录用户表

- 列表内容

  1. databd.java //程序入口及登录验证
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

public class databd extends JFrame implements ActionListener{   
    static frameDemo a=null;
    String getuser="";
    String getpd="";
    String sql = "select * from dl where id='";
    String sql1 = "select password from dl where password='";
    JButton btnNewButton = new JButton("登录");
    JButton btnNewButton_1 = new JButton("注册"); 
    JTextField show=new JTextField("\t   请选择按钮",10);   
    private JPanel contentPane;
    private JTextField userField;
    private JPasswordField pwdField;
    private Statement statement = null;  //查询账号
    private Statement statement2 = null; //注册账户   
    private static databd frame;            //
    ResultSet rst2=null;
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    frame = new databd();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    public databd() {
        String driver = "com.mysql.jdbc.Driver";      
        String url = "jdbc:mysql://localhost:8088/library?useUnicode=true&characterEncoding=utf-8&useSSL=false"; 
        String user = "root";                
        String password = "11111";
        try{
        Class.forName(driver);       
        Connection conn = DriverManager.getConnection(url, user, password);
        Connection conn2 = DriverManager.getConnection(url, user, password);
        statement = conn.createStatement();
        statement2 = conn2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        rst2=statement2.executeQuery("select * from dl");
        show.setEditable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(250, 200);              
        setLocationRelativeTo(null);    

        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(null);
        add(contentPane);

        JLabel lblUsername = new JLabel("账号");
        lblUsername.setBounds(12, 13, 54, 15);
        contentPane.add(lblUsername);

        JLabel lblPassword = new JLabel("密码");
        lblPassword.setBounds(12, 38, 54, 15);
        contentPane.add(lblPassword);

        userField = new JTextField();
        userField.setBounds(76, 10, 144, 21);
        contentPane.add(userField);
        userField.setColumns(10);

        pwdField = new JPasswordField();
        pwdField.setEchoChar('*');    //密码回显字符
        pwdField.setBounds(76, 35, 144, 21);
        contentPane.add(pwdField);
        pwdField.setColumns(10);
        add(show,BorderLayout.SOUTH);

        btnNewButton.addActionListener(this);  //登录
        btnNewButton.setBounds(10, 92, 93, 23);
        contentPane.add(btnNewButton);

        btnNewButton_1.addActionListener(this); //注册
        btnNewButton_1.setBounds(127, 92, 93, 23);
        contentPane.add(btnNewButton_1);

        show.addActionListener(this);
        }catch(ClassNotFoundException  e){System.out.print("不能找到驱动器");
        }catch(Exception e){System.out.print("出现错误");e.printStackTrace();}

        } 
    public void actionPerformed(ActionEvent e) {
        getuser=userField.getText().trim()+"'";
        String pd=String.valueOf(pwdField.getPassword());
        try{                
            ResultSet rs=statement.executeQuery(sql+getuser);
            if(e.getSource()==btnNewButton){  //登录
                  if(rs.next()){                    
                    if(rs.getString(2).equals(pd)){
                       frame.setVisible(false);
                       JOptionPane.showMessageDialog(null, "登录成功");
                       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                       a=frameDemo.a; //生成静态对象
                       }else show.setText("\t   密码错误");
                   }
                   else 
                    show.setText("\t   账号不存在");
                }
            else if(e.getSource()==btnNewButton_1){ //注册
                   if(userField.getText().equals("")){
                       show.setText("\t 注册账号不能为空");}
                   else {
                       if((String.valueOf(pwdField.getPassword())).equals(""))
                           show.setText("\t 注册密码不能为空");
                       else {register();}
                       }
            }
        }catch(Exception c){c.printStackTrace();}                  
      }
      private void register(){    
          String name=userField.getText(),
                  passwd=String.valueOf(pwdField.getPassword());
          try{
          rst2.moveToInsertRow();
          rst2.updateString(1, name);
          rst2.updateString(2, passwd);
          rst2.insertRow();
          rst2.moveToCurrentRow();
          show.setText("\t   注册成功");
          }catch(Exception e){show.setText("\t   注册失败");}
      }
}

2.frameDemo //主框架,处理事件交给addinformation类

package database;
import javax.swing.*;
import javax.swing.border.TitledBorder;

import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class frameDemo extends JFrame implements ActionListener{
    public static frameDemo a=new frameDemo();  
    JPanel panel=new JPanel(),
            panel1=new JPanel(),
            panel2=new JPanel(),
            panel3=new JPanel(),
            panel4=new JPanel(),
            panel5=new JPanel();
    String[] adds={"请选择操作","添加馆藏记录","添加借书记录","添加学生记录"};
    String[] deletes={"请选择操作","删除馆藏记录","删除借书记录","删除学生记录"};
    String[] changes={"请选择操作","修改库存记录","修改应还日期"};
    String[] querys={"请选择操作","查询书籍","查询书号","查询学生借书记录","查询学生信息"};
    String[] shows={"请选择操作","显示所有馆藏记录","显示借书记录","显示学生记录"};
    String[] record=new String[4];
    JTextArea ta=new JTextArea("-->欢迎使用系统\n",11,60);
    JScrollPane pane=new JScrollPane(ta);
    Connection conn=null;
    Statement stmt=null;
    Statement stmt1=null;
    Statement stmt2=null;
    ResultSet rst=null;
    ResultSet rst1=null;
    ResultSet rst2=null;
    static boolean key;
    private JFrame big=new JFrame("请选择操作");
    private JComboBox add=new JComboBox(adds);
    private JComboBox delete=new JComboBox(deletes);
    private JComboBox change=new JComboBox(changes);
    private JComboBox query=new JComboBox(querys);
    private JComboBox show=new JComboBox(shows);
    public frameDemo(){
        super("图书馆管理系统");
        try{
            Class.forName("com.mysql.jdbc.Driver");
            String url="jdbc:mysql://localhost:8088/library?useUnicode=true&characterEncoding=utf-8&useSSL=false";
            String user="root";
            String password="11111";
            conn=DriverManager.getConnection(url, user, password);          
            panel4.setLayout(new GridLayout(3,1,30,10));
            panel4.setBorder(new TitledBorder("选择管理:"));
            panel1.add(new JLabel("添加记录:"));
            panel1.add(add);
            panel1.add(new JLabel("删除记录:"));
            panel1.add(delete);
            panel2.add(new JLabel("修改记录:"));
            panel2.add(change);
            panel2.add(new JLabel("查询记录:"));
            panel2.add(query);
            panel3.add(new JLabel("显示记录:"));
            panel3.add(show);
            panel4.add(panel1);panel4.add(panel2);panel4.add(panel3);       
            panel5.add(pane);
            panel.add(panel5,BorderLayout.SOUTH);
            panel.add(panel4,BorderLayout.CENTER);  
            add(panel);
            //pack();
            stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//可滚可更            
            stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);         
            stmt2=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 

            add.addActionListener(this);
            delete.addActionListener(this);
            change.addActionListener(this);
            query.addActionListener(this);
            show.addActionListener(this);

            setSize(470,440);
            //setResizable(false);
            setLocationRelativeTo(null);
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            }catch(Exception e){e.printStackTrace();}

    }
    public void actionPerformed(ActionEvent ae){
        try{
            //if(key){      //数据库非空
             if(add.getSelectedIndex()==1){                 
                ta.append("-->添加馆藏记录\n");
                addinformation a1=new addinformation("图书编号", "书名", "库存",1);             
             }
             else if(add.getSelectedIndex()==2){
                ta.append("-->添加借书记录\n");
                addinformation a1=new addinformation("图书编号", "学号",2);
             }
             else if(add.getSelectedIndex()==3){
                 ta.append("-->添加学生记录\n");
                 addinformation a1=new addinformation("学生学号", "学生姓名",3);
             }
             add.setSelectedItem("请选择操作");

             if(delete.getSelectedIndex()==1){
                ta.append("-->删除馆藏记录\n");
                addinformation a1=new addinformation("图书编号",4);
             }
             else if(delete.getSelectedIndex()==2){
                 ta.append("-->删除借书记录\n");
                 addinformation a1=new addinformation("图书编号","学生学号",5);
             }
             else if(delete.getSelectedIndex()==3){
                ta.append("-->删除学生记录\n");
                addinformation a1=new addinformation("学生学号",6);
             }
             delete.setSelectedItem("请选择操作");

             if(change.getSelectedIndex()==1){
                ta.append("-->修改库存记录\n");
                addinformation a1=new addinformation("图书编号","库存数目",7);
             }
             else if(change.getSelectedIndex()==2){
                ta.append("-->修改应还日期\n");
                addinformation a1=new addinformation("图书编号","学生学号","应还日期",8);   
             }
             change.setSelectedItem("请选择操作");

             if(query.getSelectedIndex()==1){
                ta.append("-->按书名查询\n");
                addinformation a1=new addinformation("书名",9);   
             }
             else if(query.getSelectedIndex()==2){
                ta.append("-->按书籍编号查询\n");
                addinformation a1=new addinformation("书籍编号",10);
             }
             else if(query.getSelectedIndex()==3){
                ta.append("-->查询学生借书记录\n");
                addinformation a1=new addinformation("学生学号",11);
             }
             else if(query.getSelectedIndex()==4){
                ta.append("-->查询学生信息\n");
                addinformation a1=new addinformation("学生学号",12);    
             }
             query.setSelectedItem("请选择操作");

             if(show.getSelectedIndex()==1){
                 ta.append("-->显示所有馆藏记录\n");
                 try{
                    rst=stmt.executeQuery("SELECT * FROM book");
                    rst.first();
                    ta.append("------------------------------------\n");
                    int id=rst.getInt(1);
                    String name=rst.getString(2);
                    int num=rst.getInt(3);  
                    ta.append("\t书籍编号\t书籍名称\t在馆库存\n");
                    ta.append("\t"+id+"\t"+name+"\t"+num+"\n");
                    while(rst.next()){
                            id=rst.getInt(1);
                            name=rst.getString(2);
                            num=rst.getInt(3);
                            ta.append("\t"+id+"\t"+name+"\t"+num+"\n");
                        }//执行后游标指向最后一行的后一个位置
                        rst.first();
                        ta.append("------------------------------------\n");
                    }catch(Exception e){ta.append("-->显示错误");}
             }
             else if(show.getSelectedIndex()==2){
                 ta.append("-->显示借书记录\n");               
                 rst1=stmt1.executeQuery("SELECT * FROM bs");
                 Calendar calendar =new GregorianCalendar();
                 try{
                    rst1.first();
                    ta.append("----------------------------------------------------\n");
                    int bookid=rst1.getInt(2);
                    int stdid=rst1.getInt(3);
                    Date x=rst1.getDate(4);          
                     calendar.setTime(x);
                     calendar.add(calendar.DATE, 30);
                     java.util.Date utilDate = (java.util.Date)calendar.getTime();
                     utilDate = (java.util.Date)calendar.getTime();
                     Date newDate =new Date(utilDate.getTime());    
                    ta.append("\t书籍编号\t学生学号\t借书日期\t\t应还日期\n");
                    ta.append("\t"+bookid+"\t"+stdid+"\t"+x+"\t"+newDate+"\n");             
                    while(rst1.next()){
                            bookid=rst1.getInt(2);
                            stdid=rst1.getInt(3);
                            x=rst1.getDate(4);
                            calendar.setTime(x);
                            calendar.add(calendar.DATE, 30);
                            utilDate = (java.util.Date)calendar.getTime();
                            utilDate = (java.util.Date)calendar.getTime();
                            newDate =new Date(utilDate.getTime());
                            ta.append("\t"+bookid+"\t"+stdid+"\t"+x+"\t"+newDate+"\n");
                        }//执行后游标指向最后一行的后一个位置
                        rst1.first();
                        ta.append("----------------------------------------------------\n");
                    }catch(Exception e){ta.append("-->显示错误");e.printStackTrace();}
             }
             else if(show.getSelectedIndex()==3){
                 ta.append("-->显示学生记录\n");
                 try{
                    rst2=stmt2.executeQuery("SELECT * FROM std");
                    rst2.first();
                    ta.append("------------------------------------\n");
                    int id=rst2.getInt(1);
                    String name=rst2.getString(2);
                    ta.append("\t学生学号\t学生姓名\n");
                    ta.append("\t"+id+"\t"+name+"\t"+"\n");
                    while(rst2.next()){
                            id=rst2.getInt(1);
                            name=rst2.getString(2);
                            ta.append("\t"+id+"\t"+name+"\t"+"\n");
                        }//执行后游标指向最后一行的后一个位置
                    rst2.first();
                    ta.append("------------------------------------\n");
                    }catch(Exception e){ta.append("-->显示错误");}
             }
             show.setSelectedItem("请选择操作");
             ta.setCaretPosition(ta.getText().length()); //滚动条保持在最后一条        
          }catch(Exception e){e.printStackTrace();} 
    }
    public void showMessage(){
        try{
            int a=rst.getRow();
            ta.append(a+"\n");
            rst.first();
            ta.append("---------------------------\n");
            String id=rst.getString(1),
                    name=rst.getString(2),
                    brand=rst.getString(3),
                    price=rst.getString(4),
                    stock=rst.getString(5);         
            ta.append(id+"  "+name+"  "+brand+"  "+price+"  "+stock+"\n");
            while(rst.next()){
                id=rst.getString(1);
                name=rst.getString(2);
                brand=rst.getString(3);
                price=rst.getString(4);
                stock=rst.getString(5);
                ta.append(id+"  "+name+"  "+brand+"  "+price+"  "+stock+"\n");
            }//执行后游标指向最后一行的后一个位置
            rst.absolute(a);
            ta.append("---------------------------\n");
        }catch(Exception e){ta.append("-->显示错误");}
    }
//  public static void main(String[] args){     
//              try{
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());          
//              }catch(Exception e){System.out.print("1111111111");}
//              a=new frameDemo();
//          }

    }

3.addinformation.java //处理事件

package database;
import javax.swing.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class addinformation extends JFrame implements ActionListener{
    JButton sure=new JButton("确定"),
            quxiao=new JButton("取消");
    JTextField jtf1=new JTextField(10),
            jtf2=new JTextField(10),
            jtf3=new JTextField(10);
    Connection conn=null;
    static{
        try{
        Class.forName("com.mysql.jdbc.Driver");
        }catch(Exception e){e.printStackTrace();}       
    }
    int x=0;
    public Connection getConnection() throws SQLException{
        if(conn==null){
            conn=DriverManager.getConnection("jdbc:mysql://localhost:8088/library?useUnicode=true&characterEncoding=utf-8&useSSL=false","root","11111");
        }
        return conn;
    }
    addinformation(String s1,String s2,String s3,int m){
        JPanel p=new JPanel();
        p.setLayout(new FlowLayout()); 
        p.add(new JLabel(s1));
        p.add(jtf1);
        p.add(new JLabel(s2));
        p.add(jtf2);
        p.add(new JLabel(s3));
        p.add(jtf3);    
        p.add(sure);
        p.add(quxiao);
        add(p);
        if(m==8){
            JOptionPane.showMessageDialog(null, "图书日期应为  XXXX-XX-XX 格式!","警告",JOptionPane.WARNING_MESSAGE);
        }
        setSize(500, 100);  
        setVisible(true); 
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);             
        setLocationRelativeTo(null);  
        sure.addActionListener(this);
        quxiao.addActionListener(this);
        x=m;
    }
    addinformation(String s1,String s2,int m){      
        JPanel p=new JPanel();
        p.setLayout(new FlowLayout()); 
        p.add(new JLabel(s1));
        p.add(jtf1);
        p.add(new JLabel(s2));
        p.add(jtf2);    
        p.add(sure);
        p.add(quxiao);
        add(p);
        setSize(500, 100);  
        setVisible(true); 
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);             
        setLocationRelativeTo(null);  
        sure.addActionListener(this);
        quxiao.addActionListener(this);
        x=m;
    }
    addinformation(String s1,int m){
        JPanel p=new JPanel();
        p.setLayout(new FlowLayout()); 
        p.add(new JLabel(s1));
        p.add(jtf1);
        if(m==4){
        JOptionPane.showMessageDialog(null, "若存在借阅记录则不能删除书籍信息!","警告",JOptionPane.WARNING_MESSAGE);
        }
        if(m==6){
        JOptionPane.showMessageDialog(null, "若学生存在借阅记录则不能删除该学生信息!","警告",JOptionPane.WARNING_MESSAGE);
        }
        p.add(sure);
        p.add(quxiao);
        add(p); 
        setSize(500, 80);  
        setVisible(true); 
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);             
        setLocationRelativeTo(null);  
        sure.addActionListener(this);
        quxiao.addActionListener(this);
        x=m;
    }

    public void actionPerformed(ActionEvent ae){
        if(ae.getSource()==sure){
            if(x==1){   //添加 馆藏记录
                String sql="INSERT INTO book VALUES(?,?,?)";
                try(    
                Connection conn=getConnection();
                PreparedStatement stmt=conn.prepareStatement(sql)){
                int id=Integer.parseInt(jtf1.getText());
                String name=jtf2.getText();
                int num=Integer.parseInt(jtf3.getText());
                stmt.setInt(1, id);
                stmt.setString(2, name);
                stmt.setInt(3, num);
                stmt.executeUpdate();
                frameDemo.a.ta.append("-->添加成功\n");           
               }catch(Exception x){frameDemo.a.ta.append("-->插入出错\n");x.printStackTrace();}
                addinformation.this.dispose(); 
            }
            if(x==2){   //添加借书记录
                    String sql="INSERT INTO bs(bookid,stdid,date) VALUES(?,?,?)";
                    String sql1="SELECT id,num FROM book WHERE id=?";
                    String sql2="SELECT id FROM std WHERE id=?";
                    try{
                    Connection conn1=getConnection();
                    PreparedStatement stmt1=conn1.prepareStatement(sql1,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
                    stmt1.setInt(1,Integer.parseInt(jtf1.getText()));                   
                    ResultSet rst1=stmt1.executeQuery();//找有没有这本书和库存是否为0
                    if(rst1.next()&&(rst1.getInt(2)>0)){
                        int n=rst1.getInt(2);n-=1;
                        int m=rst1.getInt(1);
                        rst1.updateInt(1, m);
                        rst1.updateInt(2, n);
                        rst1.updateRow();
                        Connection conn2=getConnection();
                        PreparedStatement stmt2=conn2.prepareStatement(sql2);
                        stmt2.setInt(1,Integer.parseInt(jtf2.getText()));
                        ResultSet rst2=stmt2.executeQuery();//有人
                        if(rst2.next()){
                            Connection conn=getConnection();
                            PreparedStatement stmt=conn.prepareStatement(sql);
                            int bookid=Integer.parseInt(jtf1.getText());
                            int stdid=Integer.parseInt(jtf2.getText()); 
                            stmt.setInt(1, bookid);
                            stmt.setInt(2, stdid);
                            stmt.setDate(3, new Date(System.currentTimeMillis()));
                            stmt.executeUpdate();
                            frameDemo.a.ta.append("-->添加成功\n");
                        }
                        else{frameDemo.a.ta.append("-->无该学生记录,不能添加借阅记录\n");}
                    }else{frameDemo.a.ta.append("-->无此书或已全部借出\n");}                           
                   }catch(Exception x){frameDemo.a.ta.append("-->插入出错\n");x.printStackTrace();}
                    addinformation.this.dispose();              
             }
            if(x==3){    //添加学生记录
                String sql="INSERT INTO std VALUES(?,?)";
                try(    
                Connection conn=getConnection();
                PreparedStatement stmt=conn.prepareStatement(sql)){
                int id=Integer.parseInt(jtf1.getText());
                String name=jtf2.getText(); 
                stmt.setInt(1, id);
                stmt.setString(2, name);
                stmt.executeUpdate();
                frameDemo.a.ta.append("-->添加成功\n");       
               }catch(Exception x){frameDemo.a.ta.append("-->插入出错\n");x.printStackTrace();}
                addinformation.this.dispose();              
            }
            if(x==4){    //删除图书记录
                String sql="DELETE FROM book WHERE id=?";
                String sql1="SELECT * FROM bs WHERE bookid=?";
                try{
                Connection conn1=getConnection();
                PreparedStatement stmt1=conn1.prepareStatement(sql1);
                stmt1.setInt(1,Integer.parseInt(jtf1.getText()));
                ResultSet rst1=stmt1.executeQuery();
                if(rst1.next()){    //借阅记录中有书
                    JOptionPane.showMessageDialog(null, "借阅记录中有该书的借阅记录!","警告",JOptionPane.WARNING_MESSAGE);
                }
                else{        //借阅记录无书,可以删掉
                    Connection conn=getConnection();
                    PreparedStatement stmt=conn.prepareStatement(sql);
                    int id=Integer.parseInt(jtf1.getText());
                    stmt.setInt(1, id);
                    int t=stmt.executeUpdate();
                   if(t==0){
                    frameDemo.a.ta.append("-->删除出错\n");
                    JOptionPane.showMessageDialog(null, "不存在该图书信息!","警告",JOptionPane.WARNING_MESSAGE);
                    }
                    else frameDemo.a.ta.append("-->删除记录成功\n");
                 }                    
               }catch(Exception x){frameDemo.a.ta.append("-->删除失败\n");x.printStackTrace();}
                addinformation.this.dispose();
            }
            if(x==5){   //删除借书记录
                String sql="DELETE FROM bs WHERE bookid=? AND stdid=?";
                String sql1="SELECT id,num FROM book WHERE id=?";
                try{            
                Connection conn=getConnection();
                PreparedStatement stmt=conn.prepareStatement(sql);
                int bookid=Integer.parseInt(jtf1.getText());
                int stdid=Integer.parseInt(jtf2.getText());
                stmt.setInt(1, bookid);
                stmt.setInt(2, stdid);
                int t=stmt.executeUpdate();
                if(t!=0){
                    Connection conn1=getConnection();
                    PreparedStatement stmt1=conn1.prepareStatement(sql1,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
                    stmt1.setInt(1,Integer.parseInt(jtf1.getText()));   
                    ResultSet rst1=stmt1.executeQuery();rst1.next();
                    int m=rst1.getInt(1);
                    int n=rst1.getInt(2);n+=1;
                    rst1.updateInt(1, m);
                    rst1.updateInt(2, n);
                    rst1.updateRow();
                    frameDemo.a.ta.append("-->删除借阅记录成功\n");
                }
                else{
                    frameDemo.a.ta.append("-->删除出错\n");
                    JOptionPane.showMessageDialog(null, "不存在这条借阅记录!","警告",JOptionPane.WARNING_MESSAGE);
                }                     
               }catch(Exception x){frameDemo.a.ta.append("-->删除出错\n");x.printStackTrace();}
                addinformation.this.dispose();
            }
            if(x==6){  //删除学生记录
                String sql="DELETE FROM std WHERE id=?";
                String sql1="SELECT * FROM bs WHERE stdid=?";
                try {
                    Connection conn1=getConnection();
                    PreparedStatement stmt1=conn1.prepareStatement(sql1);
                    stmt1.setInt(1,Integer.parseInt(jtf1.getText()));
                    ResultSet rst1=stmt1.executeQuery();
                    if(rst1.next()){    //借阅记录中有该人
                        JOptionPane.showMessageDialog(null, "借阅记录中有该人的借阅记录!","警告",JOptionPane.WARNING_MESSAGE);
                    }
                    else{
                        Connection conn=getConnection();
                        PreparedStatement stmt=conn.prepareStatement(sql);
                        int stdid=Integer.parseInt(jtf1.getText());
                        stmt.setInt(1, stdid);
                        int t=stmt.executeUpdate();
                        if(t==0){
                            frameDemo.a.ta.append("-->删除出错\n");
                            JOptionPane.showMessageDialog(null, "不存在该学生记录!","警告",JOptionPane.WARNING_MESSAGE);
                            }
                        else frameDemo.a.ta.append("-->删除记录成功\n");
                        }                         
               }catch(Exception x){frameDemo.a.ta.append("-->删除出错\n");x.printStackTrace();}
                addinformation.this.dispose();
            }
            if(x==7){   //修改图书库存记录
                String sql="UPDATE book SET num=? WHERE id=?";
                try(    
                Connection conn=getConnection();
                PreparedStatement stmt=conn.prepareStatement(sql)){
                int num=Integer.parseInt(jtf2.getText());
                int bookid=Integer.parseInt(jtf1.getText());
                stmt.setInt(1, num);
                stmt.setInt(2, bookid);
                int t=stmt.executeUpdate();
                if(t==0){
                    frameDemo.a.ta.append("-->修改出错\n");
                    JOptionPane.showMessageDialog(null, "不存在该图书记录!","警告",JOptionPane.WARNING_MESSAGE);
                }
                else frameDemo.a.ta.append("-->修改记录成功\n");        
               }catch(Exception x){frameDemo.a.ta.append("-->修改出错\n");x.printStackTrace();}
                addinformation.this.dispose();
            }
            if(x==8){   //修改应还日期
                String sql="UPDATE bs SET date=? WHERE bookid=? AND stdid=?";
                try(    
                Connection conn=getConnection();
                PreparedStatement stmt=conn.prepareStatement(sql)){
                Date date = Date.valueOf(jtf3.getText());
                Calendar calendar =new GregorianCalendar();
                calendar.setTime(date);
                calendar.add(calendar.DATE, -30);
                java.util.Date utilDate = (java.util.Date)calendar.getTime();
                utilDate = (java.util.Date)calendar.getTime();
                Date newDate =new Date(utilDate.getTime());
                int stdid=Integer.parseInt(jtf2.getText());
                int bookid=Integer.parseInt(jtf1.getText());
                stmt.setDate(1, newDate);               
                stmt.setInt(2, bookid);
                stmt.setInt(3, stdid);
                int t=stmt.executeUpdate();
                if(t==0){
                    frameDemo.a.ta.append("-->修改出错\n");
                    JOptionPane.showMessageDialog(null, "不存在该借书记录!","警告",JOptionPane.WARNING_MESSAGE);
                }
                else frameDemo.a.ta.append("-->修改记录成功\n");        
               }catch(Exception x){frameDemo.a.ta.append("-->修改出错\n");x.printStackTrace();}
                addinformation.this.dispose();
            }
            if(x==9){   //按书名查询
                String sql="SELECT * from book WHERE name=?";
                ResultSet rst=null;
                try(    
                Connection conn=getConnection();
                PreparedStatement stmt=conn.prepareStatement(sql)){
                String name=jtf1.getText();
                stmt.setString(1, name);                
                rst=stmt.executeQuery();
                if(rst.next()){
                    frameDemo.a.ta.append("---------------------------------------\n");
                    frameDemo.a.ta.append("\t图书编号\t书名\t在馆数\n");
                    frameDemo.a.ta.append("\t"+rst.getInt(1)+"\t"+rst.getString(2)+"\t"+rst.getInt(3)+"\n");
                    frameDemo.a.ta.append("---------------------------------------\n");
                }
                else{
                    frameDemo.a.ta.append("-->查询出错\n");
                    JOptionPane.showMessageDialog(null, "不存在该书!","警告",JOptionPane.WARNING_MESSAGE);   
                }
               }catch(Exception x){frameDemo.a.ta.append("-->查询出错\n");x.printStackTrace();}
                addinformation.this.dispose();
            }   
            if(x==10){   //按书籍编号查询
                String sql="SELECT * from book WHERE id=?";
                ResultSet rst=null;
                try(    
                Connection conn=getConnection();
                PreparedStatement stmt=conn.prepareStatement(sql)){
                stmt.setInt(1, Integer.parseInt(jtf1.getText()));               
                rst=stmt.executeQuery();
                if(rst.next()){
                    frameDemo.a.ta.append("---------------------------------------\n");
                    frameDemo.a.ta.append("\t图书编号\t书名\t在馆数\n");
                    frameDemo.a.ta.append("\t"+rst.getInt(1)+"\t"+rst.getString(2)+"\t"+rst.getInt(3)+"\n");
                    frameDemo.a.ta.append("---------------------------------------\n");
                }
                else{
                    frameDemo.a.ta.append("-->查询出错\n");
                    JOptionPane.showMessageDialog(null, "不存在该书!","警告",JOptionPane.WARNING_MESSAGE);   
                }
               }catch(Exception x){frameDemo.a.ta.append("-->查询出错\n");x.printStackTrace();}
                addinformation.this.dispose();
            }
            if(x==11){   //按学生借书记录查询
                String sql="SELECT bookid,stdid,date from bs WHERE stdid=?";
                ResultSet rst=null;
                try(    
                Connection conn=getConnection();
                PreparedStatement stmt=conn.prepareStatement(sql)){
                stmt.setInt(1, Integer.parseInt(jtf1.getText()));               
                rst=stmt.executeQuery();
                Calendar calendar =new GregorianCalendar();
                if(rst.next()){
                    frameDemo.a.ta.append("----------------------------------------------------\n");
                    frameDemo.a.ta.append("\t图书编号\t学生学号\t借书时间\t\t应还时间\n");
                    Date x=rst.getDate(3);               
                     calendar.setTime(x);
                     calendar.add(calendar.DATE, 30);
                     java.util.Date utilDate = (java.util.Date)calendar.getTime();
                     utilDate = (java.util.Date)calendar.getTime();
                     Date newDate =new Date(utilDate.getTime());
                     frameDemo.a.ta.append("\t"+rst.getInt(1)+"\t"+rst.getInt(2)+"\t"+x+"\t"+newDate+"\n");
                    while(rst.next()){              
                      x=rst.getDate(3);
                      calendar.setTime(x);
                      calendar.add(calendar.DATE, 30);
                      utilDate = (java.util.Date)calendar.getTime();
                      utilDate = (java.util.Date)calendar.getTime();
                      newDate =new Date(utilDate.getTime());
                      frameDemo.a.ta.append("\t"+rst.getInt(1)+"\t"+rst.getInt(2)+"\t"+x+"\t"+newDate+"\n");
                      } 
                    frameDemo.a.ta.append("----------------------------------------------------\n");
                    }
                    else{
                    frameDemo.a.ta.append("-->查询出错\n");
                    JOptionPane.showMessageDialog(null, "不存在该借书记录!","警告",JOptionPane.WARNING_MESSAGE);    
                  }
               }catch(Exception x){frameDemo.a.ta.append("-->查询出错\n");x.printStackTrace();}
                addinformation.this.dispose();
            }
            if(x==12){   //查询学生信息
                String sql="SELECT * from std WHERE id=?";
                ResultSet rst=null;
                try(    
                Connection conn=getConnection();
                PreparedStatement stmt=conn.prepareStatement(sql)){
                stmt.setInt(1, Integer.parseInt(jtf1.getText()));               
                rst=stmt.executeQuery();
                if(rst.next()){
                    frameDemo.a.ta.append("---------------------------------------\n");
                    frameDemo.a.ta.append("\t学生学号\t学生姓名\t\n");           
                    frameDemo.a.ta.append("\t"+rst.getInt(1)+"\t"+rst.getString(2)+"\n");
                    frameDemo.a.ta.append("---------------------------------------\n");
                   }
                   else{
                    frameDemo.a.ta.append("-->查询出错\n");
                    JOptionPane.showMessageDialog(null, "不存在该学生!","警告",JOptionPane.WARNING_MESSAGE);      
                  }
               }catch(Exception x){frameDemo.a.ta.append("-->查询出错\n");x.printStackTrace();}
                addinformation.this.dispose();
            }
        }
        if(ae.getSource()==quxiao){
            addinformation.this.dispose();
            frameDemo.a.ta.append("-->操作取消\n");
        }

    }
}

登录界面
主界面

猜你喜欢

转载自blog.csdn.net/qq_28929579/article/details/53562552
今日推荐