zoukankan      html  css  js  c++  java
  • 测试与调试

    一、系统需求描述  

        该系统主要包括读者用户登录系统、管理员用户登入系统、图书管理系统、图书借阅、图书和用户信息查询子系统四个部分,各部分主要功能如下:

        读者用户登录子系统:用于数据库的连接,主界面的设计和读者身份用户的登录管理。

        管理员用户登入系统:用于管理员用户的管理,如图书添加、图书信息修改。

        图书管理系统:用于图书信息的管理,如新书入库、图书信息修改、图书信息删除。

        图书借阅系统:用于用户借阅和归还图书。

        图书和用户信息查询:图书和用户信息的查询。

          实现管理员对用户的增删改查,对图书信息增删查改、图书借阅信息的修改,实现用户对图书的查找、借阅、续借、归还以及修改密码。

    二、读者用户登录系统:

    package hehe;

    import java.awt.Frame;

    import java.awt.Menu;

    import java.awt.MenuBar;

    import java.awt.MenuItem;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.awt.event.WindowAdapter;

    import java.awt.event.WindowEvent;

    @SuppressWarnings("serial")

    public class 菜单1 extends Frame implements ActionListener{

    //TextArea ta;  //文本区

    MenuBar mb;   //MenuBar 类封装绑定到框架的菜单栏的

    Menu mnLog,mnJy,mnFy,mnLy;  //从菜单栏部署的下拉式菜单组件

    MenuItem mizhuce,milog,miExit,miyhzh,miyhxx;  //菜单中的所有项必须属于类 MenuItem 或其子类之一

    MenuItem mifyshow,mifydelete,mifyinsert,mifymodify,milyshow,miyshow,mijyshow,mijyinsert,mijymodify;

    public 菜单1(){

    super("图书管理系统");  //调用父类构造方法

    // ta = new TextArea("",20,20);  //新建文本区,第一个参数是默认文本,第二个参数是行数,第三个是列数

    /*

     * BorderLayout边框布局

     * 添加文本区到Frame,BorderLayout.CENTER是居中位置

     * */

    // add(ta,BorderLayout.CENTER);  

    mb = new MenuBar();  //创建菜单栏对象

    /*

     * 创建菜单,指定菜单名

     * */

    mnLog= new Menu("退出");  

    mnFy= new Menu("读者信息管理");

    mnJy= new Menu("借阅管理");

        /* jLabel=new JLabel("欢迎进入设备管理系统"); 

         jLabel.setHorizontalAlignment(JLabel.CENTER); 

         jLabel.setForeground(Color.red);*/

    /*

     * 创建子菜单,并指定名称

     * */

    miExit=new MenuItem("退出");

    miExit.addActionListener(this);  //为退出菜单添加监听

    /*

     * 添加上面创建的子菜单到文件菜单下

     * */   

    mnLog.add(miExit);//将一个分隔线或连字符添加到菜单的当前位置

            /*

     * 添加miBinary、miFont两个子菜单到mnFormat(格式)下

     * */

    mifyshow=new MenuItem("查看");

    mifyshow.addActionListener(this);

    mnFy.add(mifyshow);

    milyshow.addActionListener(this);

    miyshow=new MenuItem("查看");

    mnLy.add(miyshow);

    miyshow.addActionListener(this);

    mijyinsert=new MenuItem("借书");

    mijyinsert.addActionListener(this);

    mnJy.add(mijyinsert);

    /*

     * 将文件、编辑、格式、帮助添加到菜单栏

     * */

    mb.add(mnLog);

    mb.add(mnJy);

    mb.add(mnFy);

    mb.add(mnLy);

    setMenuBar(mb);  //添加菜单栏到Frame

    /*

     * 关闭窗口时,关闭运行成语

     * */

    addWindowListener(new WindowAdapter(){

    public void windowClosing(WindowEvent e){

    System.exit(0);

    }

    });

    }

    public static void main(String args[]){

    菜单1 tm=new 菜单1();

    tm.setSize(700,500);  //设置窗体的宽、高

    tm.setLocation(300,100);  //将组件移到新位置Component类方法

    tm.setVisible(true);  //设置显示窗体,true为显示,false为隐藏

    }

    /**

     * 监听事件,实现ActionListener接口的actionPerformed方法

     */

    public void actionPerformed(ActionEvent e){

     if(e.getSource()==miExit){

    System.exit(0);  //停止运行程序

    }

     if(e.getSource()==mifyshow){

     读者信息查询 wo= new 读者信息查询("查看");

           this.setVisible(true);

     }

     if(e.getSource()==mijyinsert){

     读者借阅信息插入 wo= new 读者借阅信息插入("借书");

           this.setVisible(true);

     }

     if(e.getSource()==miyshow){

     留言查看 wo= new 留言查看("查看");

           this.setVisible(true);

    }

    }}

    三、管理员用户登录:

    package hehe;

    import java.awt.Frame;

    import java.awt.Menu;

    import java.awt.MenuBar;

    import java.awt.MenuItem;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.awt.event.WindowAdapter;

    import java.awt.event.WindowEvent;

    @SuppressWarnings("serial")

    public class 菜单1 extends Frame implements ActionListener{

    //TextArea ta;  //文本区

    MenuBar mb;   //MenuBar 类封装绑定到框架的菜单栏的

    Menu mnLog,mnJy,mnFy,mnLy;  //从菜单栏部署的下拉式菜单组件

    MenuItem mizhuce,milog,miExit,miyhzh,miyhxx;  //菜单中的所有项必须属于类 MenuItem 或其子类之一

    MenuItem mifyshow,mifydelete,mifyinsert,mifymodify,milyshow,miyshow,mijyshow,mijyinsert,mijymodify;

    public 菜单1(){

    super("图书管理系统");  //调用父类构造方法

    // ta = new TextArea("",20,20);  //新建文本区,第一个参数是默认文本,第二个参数是行数,第三个是列数

    /*

     * BorderLayout边框布局

     * 添加文本区到Frame,BorderLayout.CENTER是居中位置

     * */

    // add(ta,BorderLayout.CENTER);  

    mb = new MenuBar();  //创建菜单栏对象

    /*

     * 创建菜单,指定菜单名

     * */

    mnLog= new Menu("退出");  

    mnFy= new Menu("读者信息管理");

    mnJy= new Menu("借阅管理");

      /* jLabel=new JLabel("欢迎进入设备管理系统"); 

         jLabel.setHorizontalAlignment(JLabel.CENTER); 

         jLabel.setForeground(Color.red);*/

    /*

     * 创建子菜单,并指定名称

     * */

    miExit=new MenuItem("退出");

    miExit.addActionListener(this);  //为退出菜单添加监听

    /*

     * 添加上面创建的子菜单到文件菜单下

     * */   

    mnLog.add(miExit);//将一个分隔线或连字符添加到菜单的当前位置

            /*

     * 添加miBinary、miFont两个子菜单到mnFormat(格式)下

     * */

    mifyshow=new MenuItem("查看");

    mifyshow.addActionListener(this);

    mnFy.add(mifyshow);

    milyshow.addActionListener(this);

    miyshow=new MenuItem("查看");

    mnLy.add(miyshow);

    miyshow.addActionListener(this);

    mijyinsert=new MenuItem("借书");

    mijyinsert.addActionListener(this);

    mnJy.add(mijyinsert);

    /*

     * 将文件、编辑、格式、帮助添加到菜单栏

     * */

    mb.add(mnLog);

    mb.add(mnJy);

    mb.add(mnFy);

    mb.add(mnLy);

    setMenuBar(mb);  //添加菜单栏到Frame

    /*

     * 关闭窗口时,关闭运行成语

     * */

    addWindowListener(new WindowAdapter(){

    public void windowClosing(WindowEvent e){

    System.exit(0);

    }

    });

    }

    public static void main(String args[]){

    菜单1 tm=new 菜单1();

    tm.setSize(700,500);  //设置窗体的宽、高

    tm.setLocation(300,100);  //将组件移到新位置Component类方法

    tm.setVisible(true);  //设置显示窗体,true为显示,false为隐藏

    }

    /**

     * 监听事件,实现ActionListener接口的actionPerformed方法

     */

    public void actionPerformed(ActionEvent e){

     if(e.getSource()==miExit){

    System.exit(0);  //停止运行程序

    }

     if(e.getSource()==mifyshow){

     读者信息查询 wo= new 读者信息查询("查看");

           this.setVisible(true);

     }

     if(e.getSource()==mijyinsert){

     读者借阅信息插入 wo= new 读者借阅信息插入("借书");

           this.setVisible(true);

     }

     if(e.getSource()==miyshow){

     留言查看 wo= new 留言查看("查看");

           this.setVisible(true);

    }

    }}

    四 、登入界面系统:

    package hehe;

    import java.awt.Color; 

    import java.awt.Container; 

    import java.awt.Dimension; 

    import java.awt.Font; 

    import java.awt.Toolkit; 

    import java.awt.Image;  

    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.ButtonGroup;

    import javax.swing.ImageIcon; 

    import javax.swing.JButton; 

    import javax.swing.JFrame; 

    import javax.swing.JLabel;  

    import javax.swing.JOptionPane;

    import javax.swing.JPasswordField; 

    import javax.swing.JRadioButton;

    import javax.swing.JTextField; 

    public class 登陆界面 implements ActionListener{ 

    public JFrame jf= new JFrame("图书管理系统系统"); 

    public Container con = jf.getContentPane();  

    public Toolkit toolkit = Toolkit.getDefaultToolkit();  //获取工具包

    public Dimension sc = toolkit.getScreenSize();  //getScreenSize(),最后的这个方法返回一个Dimension类型的对象.是返回当先分辨率的.

    Object a,b; 

    public JRadioButton rb1 = new JRadioButton("读者"); 

    public JRadioButton rb2 = new JRadioButton("管理员"); 

    public ButtonGroup group = new ButtonGroup (); 

    public JLabel yong_hu = new JLabel("用户名");  

    public JLabel mi_ma = new JLabel("密码"); 

    public JTextField textName = new JTextField();  

    public JPasswordField textPs = new JPasswordField();  

    public JButton deng_ru = new JButton("登陆");  

    public JButton qu_xiao = new JButton("取消");  

    public Font font1 = new Font("宋体",1,14);  

    public Font font2 = new Font("宋体",0,12); 

    public 登陆界面() { 

    //con.setLayout(null); 

    //jf.setSize(sc.width/1,sc.height/2);  //大小

    /*jf.setLocation(sc.width/5,sc.height/1010); */         /* public void setLocation(int x,

                                int y)将组件移到新位置。通过此组件父级坐标空间中的 x 和 y 参数来指定新位置的左上角。 参数:

                              x - 父级坐标空间中新位置左上角的 x 坐标y - 父级坐标空间中新位置左上角的 y 坐标*/

    con.setLayout(null);  

    group.add(rb1);  

    group.add(rb2);  

    deng_ru.addActionListener(this);

    qu_xiao.addActionListener(this);

    rb1.addActionListener(this);  

    rb2.addActionListener(this);  

    jf.setSize(/*sc.width/3*/500,sc.height/2);  

    jf.setLocation(sc.width/3,sc.height/4); 

    jf.setResizable(false);    

    yong_hu.setLocation(80,30);  //位置

    yong_hu.setSize(100, 100);  //大小

    yong_hu.setFont(font1);   //设置字体

    yong_hu.setForeground(Color.BLUE );//设置颜色  

    rb1.setLocation(80,180);  //位置

    rb1.setSize(65,20);  //大小

    rb2.setLocation(250,180);  //位置

    rb2.setSize(80,20);  //大小

    mi_ma.setLocation(80,90);  

    mi_ma.setSize(100,100);   

    mi_ma.setForeground(Color.BLUE ) ; 

    mi_ma.setFont(font1);  

    textName.setSize(140, 20);  

    textName.setLocation(170, 70) ; 

    textPs.setSize(140, 20);  

    textPs.setLocation(170, 130) ;  

    //textPs.setEchoChar('*');    //返回※

    deng_ru.setSize(90,25);  

    deng_ru.setLocation(80,220 ) ;

    deng_ru.setFont(font2);

    qu_xiao.setSize(90,25) ; 

    qu_xiao.setLocation(250, 220) ;

    qu_xiao.setFont(font2) ;   

    con.add(rb1) ; 

    con.add(rb2) ;  

    con.add(yong_hu) ; 

    con.add(mi_ma) ; 

    con.add(textName);  

    con.add(textPs);  

    con.add(deng_ru);  

    con.add(qu_xiao);   

    con.setBackground(Color.WHITE);    

    jf.setResizable(false);  

    jf.setVisible(true) ;  

    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  

    }  

       

    public void actionPerformed(ActionEvent e) 

    Object dx;

    Connection con;

    Statement sql;

    ResultSet rs;

      if(group.getSelection()==rb2.getModel()){  

    if(e.getSource()==deng_ru)

    {

    a=textName.getText();

         char[]c=textPs.getPassword();

         b= new String(c);

         try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

     dx=new Object[1];

     rs=sql.executeQuery("select * from 管理员信息表 where 用户名='"+a+"'");

     boolean min=rs.next();

     if(!min){

    // System.out.print("用户名错误");

                // JOptionPane.showMessageDialog(this,"用户名或密码错误");

     JOptionPane.showMessageDialog(null,"用户名或密码错误");

     }

     if(min){             

                     dx=rs.getString(2);     

               }

    // ((String) dx).trim();

    // ((String) b).trim();

                if(!dx.equals(b)){

                

                 JOptionPane.showMessageDialog(null,"用户名或密码错误");

                }

                if(dx.equals(b)){

                

                

                 JOptionPane.showMessageDialog(null,"登入成功");

                               

                   菜单 n=new 菜单();

                 n.setSize(500, 300);

                 n.setVisible(true);

                

                }

                }

                catch(SQLException ee){ 

                  System.out.println(ee);

                 }

    if(e.getSource()==qu_xiao){

    System.exit(0);

    }

               }  }

            if(group.getSelection()==rb1.getModel()){   

        if(e.getSource()==deng_ru)

        {

    a=textName.getText();

         char[]c=textPs.getPassword();

         b= new String(c);

         try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

     dx=new Object[1];

     rs=sql.executeQuery("select * from 读者信息表 where 用户名='"+a+"'");

     boolean min=rs.next();

     if(!min){

     JOptionPane.showMessageDialog(null,"用户名或密码错误");

     }

     if(min){             

                     dx=rs.getString(2);     

               }

    // ((String) dx).trim();

    // ((String) b).trim();

                if(!dx.equals(b)){

                

                 JOptionPane.showMessageDialog(null,"用户名或密码错误");

                }

                if(dx.equals(b)){

                

                

                 JOptionPane.showMessageDialog(null,"登入成功");

                               

                  菜单1 n=new 菜单1();

                 n.setSize(500, 300);

                 n.setVisible(true); //设置显示窗体

                

                }

                }

                catch(SQLException ee){ 

                  System.out.println(ee);

                 }

    }

    }

    public static void main(String[] args) {

      new 登陆界面();

    }

    }

    五、管理员图书管理:

    查询:

    package hehe;

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    import java.sql.*; 

    public class 管理员图书信息查询 extends JDialog implements ActionListener{//负责显示记录的类

     JTable  table;//表格

        Object a[][];

        Object name[]={" 图书编号","书名","出版书号","编著者","出版社","出版日期","单价","库存数量" };

        JButton S; 

        Connection con;

        Statement sql; 

        ResultSet rs;

          管理员图书信息查询(String title){  

         setTitle(title);

           S=new JButton("显示记录");

           S.addActionListener(this);

           add(S,BorderLayout.NORTH);

           setBounds(200,60,800,250);

           setVisible(true);

           

        }

        public void actionPerformed(ActionEvent e){

          

         Connection con;

    Statement sql;

    ResultSet rs;

    try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

                rs=sql.executeQuery("select * from  图书信息表");

                rs.last();

                int lastNumber=rs.getRow();

                a=new Object[lastNumber][8];

                int k=0;

                rs.beforeFirst();

                while(rs.next()){

                

                     a[k][0]=rs.getString(1);

                     a[k][1]=rs.getString(2);  

                     a[k][2]=rs.getString(3);

                     a[k][3]=rs.getString(4);

                     a[k][4]=rs.getString(5);

                     a[k][5]=rs.getString(6);

                     

                     a[k][6]=rs.getString(7);

                     a[k][7]=rs.getString(8);

                    

                    

                     

                     

                     k++;

                    

               }

               con.close();

              // System.out.print("连接失败"); 

           }  

           catch(SQLException ee){ 

          //  System.out.print("连接失败"); 

               System.out.println(ee);

           } 

           table=new JTable(a,name);

        getContentPane().removeAll();

           add(S,BorderLayout.NORTH);

          // System.out.print("连接失败"); 

           add(new JScrollPane(table),BorderLayout.CENTER);//滚动条

           validate();

        }

    public static void main(String args[]) 

     { 

        

    管理员图书信息查询  wo=new 管理员图书信息查询("查询");

     }

        }

    添加:

    package hehe;

    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.Box;

    import javax.swing.JButton;

    import javax.swing.JDialog;

    import javax.swing.JLabel;

    import javax.swing.JOptionPane;

    import javax.swing.JScrollPane;

    import javax.swing.JTable;

    public class 管理员图书信息插入 extends JDialog implements ActionListener{

    JLabel hintLabel;//标签

    Object ono[]={" 图书编号","书名","出版书号","编著者","出版社","出版日期","单价","库存数量"};

     Object a[][]=new Object[1][8];

    JTable table;

    JButton enterInsert;

    Connection con;

    Statement sql;

    ResultSet rs;

    String num;

    管理员图书信息插入(String s){

    setTitle(s);

    hintLabel=new JLabel("输入新纪录");

    table=new JTable(a,ono);

    enterInsert=new JButton("插入新纪录");

    setLayout(null);

    Box baseBox=Box.createHorizontalBox();//横向

    baseBox.add(hintLabel);

    baseBox.add(new JScrollPane(table));

    baseBox.add(enterInsert);

    add(baseBox);

    baseBox.setBounds(10,40,600,38);

    enterInsert.addActionListener(this);

    setBounds(320,160,700,200);

    setVisible(true);

    }

           public 管理员图书信息插入() {

    // TODO 自动生成的构造函数存根

    }

     public void actionPerformed(ActionEvent e){  

    Connection con;

    Statement sql;

    ResultSet rs;

    try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

    int k=sql.executeUpdate("INSERT INTO  图书信息表  VALUES('"+a[0][0]+"','"+a[0][1]+"','"+a[0][2]+"','"+a[0][3]+"','"+a[0][4]+"','"+a[0][5]+"','"+a[0][6]+"','"+a[0][7]+"','"+a[0][8]+"' )");

     //boolean a=sta.execute(str);

    if(k==1)

    JOptionPane.showMessageDialog(this,"插入成功");

    }

    catch(Exception e1) {  

    e1.printStackTrace();  

    //System.out.print("连接失败"); 

    }     

     } 

    public static void main(String args[]) 

     { 

        

    管理员图书信息插入 b=new 管理员图书信息插入("插入");

     }

    修改:

    ackage hehe;

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    import java.sql.*;

    import javax.swing.border.*;

    public class 管理员图书信息更新 extends JDialog implements ActionListener{   //负责更新记录的类

    JLabel hintLabel;

    JTextField inputNumber;  

    Object name[]={"图书编号","书名","出版书号","编著者","出版社","出版日期","单价","库存数量"};

    Object a[][]=new Object[1][8];

    JTable table;

    JButton enterModify;

    Connection con;

    Statement sql; 

    ResultSet rs;

    String  num;

    管理员图书信息更新(String s){ 

    setTitle(s);

    hintLabel=new JLabel("图书编号(回车确认):");

    inputNumber=new JTextField(20);

    table=new JTable(a,name);

    enterModify=new JButton("更新记录");

    setLayout(null);

    Box baseBox=Box.createHorizontalBox();

    baseBox.add(hintLabel);

    baseBox.add(inputNumber);

    baseBox.add(new JScrollPane(table));

    baseBox.add(enterModify);

    add(baseBox);

    baseBox.setBounds(60,70,800,50);

    inputNumber.addActionListener(this);

    enterModify.addActionListener(this);

    setBounds(20,100,900,200); 

    setVisible(true);

    }

    public void actionPerformed(ActionEvent e){

    if(e.getSource()==inputNumber)

    try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

    rs=sql.executeQuery("SELECT * FROM 图书信息表 WHERE 图书编号='"+num+"'");

    boolean boo=rs.next();

    if(boo==false){

    JOptionPane.showMessageDialog

    (this,"图书编号不存在","提示",JOptionPane.WARNING_MESSAGE);

    }       

    else{ 

    a[0][0]=rs.getString(1);

    a[0][1]=rs.getString(2) ;

    a[0][2]=rs.getString(3) ;

    a[0][3]=rs.getString(4) ;

    a[0][4]=rs.getString(5) ;

    a[0][5]=rs.getString(6) ;

    a[0][6]=rs.getString(7) ;

    a[0][7]=rs.getString(8) ;

    table.repaint();

    }

    con.close();

    }  

    catch(SQLException ee){ 

    System.out.println(ee);       }

    if(e.getSource()==enterModify){

    try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

    sql.executeUpdate

    ("UPDATE 图书信息表 SET 图书编号='"+a[0][0]+"',书名='"+a[0][1]+"',出版书号= '"+a[0][2]+"',编著者='"+a[0][3]+"',出版社='"+ a[0][4]+"',出版日期='"+a[0][5]+"',单价='"+a[0][6]+"',库存数量='"+a[0][7]+"''WHERE 设备编号='"+num+"'");

    JOptionPane.showMessageDialog

    (this,"更新成功","成功",JOptionPane.PLAIN_MESSAGE);   

    con.close();           } 

    catch(SQLException ee){      JOptionPane.showMessageDialog

    (this,"更新失败"+ee,"失败",JOptionPane.ERROR_MESSAGE);       } 

    }      }       

    public static void main(String args[]) 

       

    管理员图书信息更新 b=new 管理员图书信息更新("更新");

    }

    }       

    六、管理员借阅管理系统:

    查询:

    package hehe;

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    import java.sql.*; 

    public class 管理员借阅信息查询 extends JDialog implements ActionListener{//负责显示记录的类

     JTable  table;//表格

        Object a[][];

        Object name[]={" 读者号","姓名","借阅图书编号","借阅日期","归还日期"};

        JButton S; 

        Connection con;

        Statement sql; 

        ResultSet rs;

          管理员借阅信息查询(String title){  

         setTitle(title);

           S=new JButton("显示记录");

           S.addActionListener(this);

           add(S,BorderLayout.NORTH);

           setBounds(200,60,800,250);

           setVisible(true);

           

        }

        public void actionPerformed(ActionEvent e){

          

         Connection con;

    Statement sql;

    ResultSet rs;

    try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

                rs=sql.executeQuery("select * from  读者借阅信息表");

                rs.last();

                int lastNumber=rs.getRow();

                a=new Object[lastNumber][5];

                int k=0;

                rs.beforeFirst();

                while(rs.next()){

                

                     a[k][0]=rs.getString(1);

                     a[k][1]=rs.getString(2);  

                     a[k][2]=rs.getString(3);

                     a[k][3]=rs.getString(4);

                     a[k][4]=rs.getString(5);

                    

                     

                     

                     k++;

                    

               }

               con.close();

              // System.out.print("连接失败"); 

           }  

           catch(SQLException ee){ 

          //  System.out.print("连接失败"); 

               System.out.println(ee);

           } 

           table=new JTable(a,name);

        getContentPane().removeAll();

           add(S,BorderLayout.NORTH);

          // System.out.print("连接失败"); 

           add(new JScrollPane(table),BorderLayout.CENTER);//滚动条

           validate();

        }

    public static void main(String args[]) 

     { 

        

    管理员借阅信息查询  wo=new 管理员借阅信息查询("查询");

     }

        }

    添加:

    package hehe;

    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.Box;

    import javax.swing.JButton;

    import javax.swing.JDialog;

    import javax.swing.JLabel;

    import javax.swing.JOptionPane;

    import javax.swing.JScrollPane;

    import javax.swing.JTable;

    public class 管理员借阅信息插入 extends JDialog implements ActionListener{

    JLabel hintLabel;//标签

    Object ono[]={" 读者号","姓名","借阅图书编号","借阅日期","归还日期"};

     Object a[][]=new Object[1][5];

    JTable table;

    JButton enterInsert;

    Connection con;

    Statement sql;

    ResultSet rs;

    String num;

    管理员借阅信息插入(String s){

    setTitle(s);

    hintLabel=new JLabel("输入新纪录");

    table=new JTable(a,ono);

    enterInsert=new JButton("插入新纪录");

    setLayout(null);

    Box baseBox=Box.createHorizontalBox();//横向

    baseBox.add(hintLabel);

    baseBox.add(new JScrollPane(table));

    baseBox.add(enterInsert);

    add(baseBox);

    baseBox.setBounds(10,40,600,38);

    enterInsert.addActionListener(this);

    setBounds(320,160,700,200);

    setVisible(true);

    }

           public 管理员借阅信息插入() {

    // TODO 自动生成的构造函数存根

    }

    public void actionPerformed(ActionEvent e){  

    Connection con;

    Statement sql;

    ResultSet rs;

    try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

    int k=sql.executeUpdate("INSERT INTO  读者借阅信息表  VALUES('"+a[0][0]+"','"+a[0][1]+"','"+a[0][2]+"','"+a[0][3]+"','"+a[0][4]+"','"+a[0][5]+"' )");

     //boolean a=sta.execute(str);

    if(k==1)

    JOptionPane.showMessageDialog(this,"插入成功");

    }

    catch(Exception e1) {  

    e1.printStackTrace();  

    //System.out.print("连接失败"); 

    }     

     } 

    public static void main(String args[]) 

     { 

        

    管理员借阅信息插入 b=new 管理员借阅信息插入("插入");

     }

    }图书借阅管理子系统:

    修改:

    package hehe;

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    import java.sql.*;

    import javax.swing.border.*;

    public class 管理员借阅信息更新 extends JDialog implements ActionListener{   //负责更新记录的类

    JLabel hintLabel;

    JTextField inputNumber;  

    Object name[]={" 读者号","姓名","借阅图书编号","借阅日期","归还日期"};

    Object a[][]=new Object[1][5];

    JTable table;

    JButton enterModify;

    Connection con;

    Statement sql; 

    ResultSet rs;

    String  num;

    管理员借阅信息更新(String s){ 

    setTitle(s);

    hintLabel=new JLabel("读者号(回车确认):");

    inputNumber=new JTextField(20);

    table=new JTable(a,name);

    enterModify=new JButton("更新记录");

    setLayout(null);

    Box baseBox=Box.createHorizontalBox();

    baseBox.add(hintLabel);

    baseBox.add(inputNumber);

    baseBox.add(new JScrollPane(table));

    baseBox.add(enterModify);

    add(baseBox);

    baseBox.setBounds(60,70,800,50);

    inputNumber.addActionListener(this);

    enterModify.addActionListener(this);

    setBounds(20,100,900,200); 

    setVisible(true);

    }

    public void actionPerformed(ActionEvent e){

    if(e.getSource()==inputNumber)

    try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

    rs=sql.executeQuery("SELECT * FROM 读者借阅信息表 WHERE 读者号='"+num+"'");

    boolean boo=rs.next();

    if(boo==false){

    JOptionPane.showMessageDialog

    (this,"读者号不存在","提示",JOptionPane.WARNING_MESSAGE);

    }       

    else{ 

    a[0][0]=rs.getString(1);

    a[0][1]=rs.getString(2) ;

    a[0][2]=rs.getString(3) ;

    a[0][3]=rs.getString(4) ;

    a[0][4]=rs.getString(5) ;

    table.repaint();

    }

    con.close();

    }  

    catch(SQLException ee){ 

    System.out.println(ee);       }

    if(e.getSource()==enterModify){

    try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

    sql.executeUpdate

    ("UPDATE 读者借阅信息表 SET 读者编号='"+a[0][0]+"',姓名='"+a[0][1]+"',借阅图书编号= '"+a[0][2]+"',借阅日期='"+a[0][3]+"',归还日期='"+ a[0][4]+"',出版日期='"+a[0][5]+"'");

    JOptionPane.showMessageDialog

    (this,"更新成功","成功",JOptionPane.PLAIN_MESSAGE);   

    con.close();           } 

    catch(SQLException ee){      JOptionPane.showMessageDialog

    (this,"更新失败"+ee,"失败",JOptionPane.ERROR_MESSAGE);       } 

    }      }       

    public static void main(String args[]) 

       

    管理员借阅信息更新 b=new 管理员借阅信息更新("更新");

    }

    }  

    借阅:

    package hehe;

    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.Box;

    import javax.swing.JButton;

    import javax.swing.JDialog;

    import javax.swing.JLabel;

    import javax.swing.JOptionPane;

    import javax.swing.JScrollPane;

    import javax.swing.JTable;

    public class 读者借阅信息插入 extends JDialog implements ActionListener{

    JLabel hintLabel;//标签

    Object ono[]={" 读者号","姓名","借阅图书编号","借阅日期","归还日期"};

     Object a[][]=new Object[1][5];

    JTable table;

    JButton enterInsert;

    Connection con;

    Statement sql;

    ResultSet rs;

    String num;

    读者借阅信息插入(String s){

    setTitle(s);

    hintLabel=new JLabel("输入新纪录");

    table=new JTable(a,ono);

    enterInsert=new JButton("插入新纪录");

    setLayout(null);

    Box baseBox=Box.createHorizontalBox();//横向

    baseBox.add(hintLabel);

    baseBox.add(new JScrollPane(table));

    baseBox.add(enterInsert);

    add(baseBox);

    baseBox.setBounds(10,40,600,38);

    enterInsert.addActionListener(this);

    setBounds(320,160,700,200);

    setVisible(true);

    }

           public 读者借阅信息插入() {

    // TODO 自动生成的构造函数存根

    }

    public void actionPerformed(ActionEvent e){  

    Connection con;

    Statement sql;

    ResultSet rs;

    try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

    int k=sql.executeUpdate("INSERT INTO  读者借阅信息表  VALUES('"+a[0][0]+"','"+a[0][1]+"','"+a[0][2]+"','"+a[0][3]+"','"+a[0][4]+"','"+a[0][5]+"' )");

     //boolean a=sta.execute(str);

    if(k==1)

    JOptionPane.showMessageDialog(this,"插入成功");

    }

    catch(Exception e1) {  

    e1.printStackTrace();  

    //System.out.print("连接失败"); 

    }     

     } 

    public static void main(String args[]) 

     { 

        

    读者借阅信息插入 b=new 读者借阅信息插入("插入");

     }

    }

    七、读者信息查询:

    ackage hehe;

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    import java.sql.*; 

    @SuppressWarnings("serial")

    public class 读者信息查询 extends JDialog implements ActionListener{//负责显示记录的类

     JTable  table;//表格

        Object a[][];

        Object name[]={" 用户名","密码" };

        JButton S; 

        Connection con;

        Statement sql; 

        ResultSet rs;

          读者信息查询(String title){  

         setTitle(title);

           S=new JButton("显示");

           S.addActionListener(this);

           add(S,BorderLayout.NORTH);

           setBounds(200,60,800,250);

           setVisible(true);

           

        }

        public void actionPerformed(ActionEvent e){

         Connection con;

    Statement sql;

    ResultSet rs;

    try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

    catch(ClassNotFoundException ee){System.out.println(""+e);}

    try{con=DriverManager.getConnection("jdbc:odbc:hehe","","");

        sql=con.createStatement();

                rs=sql.executeQuery("select * from  读者信息表");

                rs.last();

                int lastNumber=rs.getRow();

                a=new Object[lastNumber][2];

                int k=0;

                rs.beforeFirst();

                while(rs.next()){

                

                     a[k][0]=rs.getString(1);

                     a[k][1]=rs.getString(2);  

        

                     k++;

                    

               }

               con.close();

           // System.out.print("连接失败"); 

           }  

           catch(SQLException ee){ 

           // System.out.print("连接失败"); 

               System.out.println(ee);

           } 

           table=new JTable(a,name);

        getContentPane().removeAll();

           add(S,BorderLayout.NORTH);

          // System.out.print("连接失败"); 

           add(new JScrollPane(table),BorderLayout.CENTER);//滚动条

           validate();

        }

    public static void main(String args[]) 

     { 

        

    读者信息查询  wo=new 读者信息查询("查询");

    }

        }

    八、软件测试:

    九、测试用例调试:

  • 相关阅读:
    【转】【Linux】linux awk命令详解
    【转】【Linux】Linux 命令行快捷键
    【转】【Linux】sed命令详解
    【转】【Linux】Linux 下zip包的压缩与解压
    【转】【Linux】grep命令详解
    【转】crontab命令 脚本定时运行
    【转】BAT 批处理脚本 教程
    【MySql】脚本备份数据库
    php的json校验json-schema
    phan—php语法静态检查在windows下的配置
  • 原文地址:https://www.cnblogs.com/fujilong/p/4591080.html
Copyright © 2011-2022 走看看