我写的学生信息管理系统,只是练习技术,,,例子比较别扭,哈哈

登陆界面:(试下用我们学校门口为界面,爽呀!!)

我写的学生信息管理系统,只是练习技术,,,例子比较别扭,哈哈

 

关于:

我写的学生信息管理系统,只是练习技术,,,例子比较别扭,哈哈

控制面板:

我写的学生信息管理系统,只是练习技术,,,例子比较别扭,哈哈

 

添加界面:

(跟修改差不多)

我写的学生信息管理系统,只是练习技术,,,例子比较别扭,哈哈

 

  1 //添加学生对话框

  2 package com.model2;

  3 

  4 import java.awt.BorderLayout;

  5 import java.awt.Frame;

  6 import java.awt.GridLayout;

  7 import java.awt.event.ActionEvent;

  8 import java.awt.event.ActionListener;

  9 import java.beans.Statement;

 10 import java.sql.Connection;

 11 import java.sql.DriverManager;

 12 import java.sql.PreparedStatement;

 13 import java.sql.ResultSet;

 14 

 15 import javax.swing.JButton;

 16 import javax.swing.JDialog;

 17 import javax.swing.JLabel;

 18 import javax.swing.JOptionPane;

 19 import javax.swing.JPanel;

 20 import javax.swing.JTextField;

 21 

 22 public class StuAddDialog extends JDialog implements ActionListener

 23 {

 24     //定义需要的控件

 25     JLabel jl1,jl2,jl3,jl4,jl5,jl6;

 26     JButton jb1,jb2;

 27     JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6;

 28     JPanel jp1,jp2,jp3;

 29     

 30     //owner他的父窗口,title窗口名,modal指定是否模态窗口

 31     public StuAddDialog(Frame owner,String title,boolean modal)

 32     {    

 33         super(owner,title,modal);//调用父类方法,达到模式对话框效果

 34         jl1 =new JLabel("学号");

 35         jl2 =new JLabel("姓名");

 36         jl3 =new JLabel("性别");

 37         jl4 =new JLabel("年龄");

 38         jl5 =new JLabel("籍贯");

 39         jl6 =new JLabel("系别");

 40         

 41         jtf1=new JTextField();

 42         jtf2=new JTextField();

 43         jtf3=new JTextField();

 44         jtf4=new JTextField();

 45         jtf5=new JTextField();

 46         jtf6=new JTextField();

 47         

 48         jb1=new JButton("添加");

 49         jb1.addActionListener(this);

 50         jb2=new JButton("取消");

 51         

 52         jp1=new JPanel();

 53         jp2=new JPanel();

 54         jp3=new JPanel();

 55         

 56         //设置布局

 57         jp1.setLayout(new GridLayout(6,1));

 58         jp2.setLayout(new GridLayout(6,1));

 59         

 60         

 61         //添加组件

 62         jp1.add(jl1);

 63         jp1.add(jl2);

 64         jp1.add(jl3);

 65         jp1.add(jl4);

 66         jp1.add(jl5);

 67         jp1.add(jl6);

 68         

 69         jp2.add(jtf1);

 70         jp2.add(jtf2);

 71         jp2.add(jtf3);

 72         jp2.add(jtf4);

 73         jp2.add(jtf5);

 74         jp2.add(jtf6);

 75         

 76         jp3.add(jb1);

 77         jp3.add(jb2);

 78         

 79         this.add(jp1,BorderLayout.WEST);

 80         this.add(jp2,BorderLayout.CENTER);

 81         this.add(jp3,BorderLayout.SOUTH);

 82         

 83         

 84         

 85         //展现

 86         this.setSize(300,200);

 87         this.setVisible(true);

 88     }

 89 

 90     @Override

 91     public void actionPerformed(ActionEvent e)

 92     {

 93         if(e.getSource()==jb1)

 94         {

 95             //想添加

 96             StuModel temp=new StuModel();

 97             String sql="insert into stu values(?,?,?,?,?,?)";

 98             String []paras={jtf1.getText(),jtf2.getText(),jtf3.getText(),jtf4.getText(),jtf5.getText(),jtf6.getText()};

 99             if(!temp.updStu(sql,paras))

100             {

101                 //提示

102                 JOptionPane.showMessageDialog(this,"添加失败");

103                 

104             }

105             //关闭

106             this.dispose();

107                 

108         }

109         

110     }

111     

112     

113 }
 1 package com.test1;

 2 

 3 import java.awt.GridLayout;

 4 import java.awt.event.ActionEvent;

 5 import java.awt.event.ActionListener;

 6 

 7 import javax.swing.*;

 8 

 9 public class StuLogin extends JFrame implements ActionListener

10 {

11     

12     public static void main(String[] args)

13     {

14         StuLogin sl=new StuLogin();

15     }

16     

17     

18     JPanel jp1,jp2,jp3;

19     JLabel jl1,jl2,jl3;

20     JButton jb1,jb2;

21     JTextField jtf;

22     JTextField jpf;

23     public StuLogin()

24     {

25         jl1=new JLabel(new ImageIcon("image/GDOU.jpg"));

26         

27         jp1=new JPanel();

28         jp2=new JPanel(new GridLayout(2,3));

29         jb1=new JButton("关于版权");

30         jb1.addActionListener(this);

31         jb2=new JButton("点击进入》》");

32         jb2.addActionListener(this);

33         jl2=new JLabel("账号:",JLabel.CENTER);

34         jl3=new JLabel("密码:",JLabel.CENTER);

35         jtf=new JTextField();

36         jpf=new JPasswordField();

37         

38         jp1.add(jl1);

39         jp2.add(jl2);

40         jp2.add(jtf);

41         jp2.add(jb1);

42         jp2.add(jl3);

43         jp2.add(jpf);

44         jp2.add(jb2);

45         

46         this.add(jp1,"North");

47         this.add(jp2,"South");

48         this.setSize(520,320);

49         this.setIconImage((new ImageIcon("image/toux.png")).getImage());

50         this.setTitle("广东海洋大学学生管理系统");

51         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

52         this.setVisible(true);

53     }

54     @Override

55     public void actionPerformed(ActionEvent arg0)

56     {

57         if(arg0.getSource()==jb2)

58         {

59             String userId=(String)jtf.getText();

60             String passWd=(String)jpf.getText();

61             

62             if(userId.equals("1")&&passWd.equals("123456"))

63             {

64                 StuManage test3=new StuManage();

65                 this.dispose();

66             }else {

67                 JOptionPane.showMessageDialog(this,"账号或密码错误!");

68             }

69             

70         }else if(arg0.getSource()==jb1)

71         {

72             JOptionPane.showMessageDialog(this,"冼敏兵版权所有,冒仿必究!\n解释权归项目开发小组");

73         }

74         

75     }

76     

77 }
/*

 * 这是stu表的模型

 */

package com.model2;



import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.Vector;



import javax.swing.table.*;



public class StuModel extends AbstractTableModel

{

    

    //改表列名

    public String getColumnName(int arg0)

    {

        // TODO Auto-generated method stub

        return (String)this.columnNames.get(arg0);

    }



    Vector rowDate,columnNames;

    

    

    //定义连接数据库需要的

    PreparedStatement pS=null;

    Connection ct=null;

    ResultSet rS=null;

    String url="jdbc:microsoft:sqlserver://192.168.165.234:1433;databaseName=spdb";

    String user="sa";

    String passwd="123";

    String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";

    //添加学生(增、删、改)

    public boolean updStu(String sql,String []paras)

    {

        boolean b=true;

        try

        {

            //加载驱动,得到连接,创建ps,执行操作

            Class.forName(driver);

            ct=DriverManager.getConnection(url,user,passwd);

            pS=ct.prepareStatement(sql);

            //给ps的?赋值

            for(int i=0;i<paras.length;i++)

            {

                pS.setString(i+1,paras[i]);

            }

            if(pS.executeUpdate()!=1)

            {

                b=false;

            }

            

        } catch (Exception e)

        {    b=false;

            e.printStackTrace();

        }finally

        {

            try

            {

                if(rS!=null) rS.close();

                if(pS!=null) pS.close();

                if(ct!=null) ct.close();

                

            } catch (Exception e2)

            {

                e2.printStackTrace();

                // TODO: handle exception

            }

        }

        return b;

    }

    public void init(String sql)

    {

        if(sql.equals(""))

        {

            sql="select * from stu";

        }

        //中间

        columnNames=new Vector();

        //设置列名

        columnNames.add("学号");

        columnNames.add("名字");

        columnNames.add("性别");

        columnNames.add("年龄");

        columnNames.add("籍贯");

        columnNames.add("系别");

        

        rowDate=new Vector();

        //rowDate可以存放多行

        

        

        try

        {

            //加载驱动

            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

            ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.1.103:1433;databaseName=spdb","sa","123");

            pS=ct.prepareStatement(sql);

            rS=pS.executeQuery();

            

            while(rS.next())

            {

                Vector hang =new Vector();

                hang.add(rS.getString(1));

                hang.add(rS.getString(2));

                hang.add(rS.getString(3));

                hang.add(rS.getInt(4));

                hang.add(rS.getString(5));

                hang.add(rS.getString(6));

            

                rowDate.add(hang);

            }

        } catch (Exception e)

        {

            e.printStackTrace();

        }finally

        {

            try

            {

                if(rS!=null) rS.close();

                if(pS!=null) pS.close();

                if(ct!=null) ct.close();

                

            } catch (Exception e2)

            {

                e2.printStackTrace();

                // TODO: handle exception

            }

        }

    }

    

    

    //通过传递的sql语句来获得数据模型

    public StuModel (String sql)

    {

        this.init(sql);

    }

    

    //构造函数,用于初始数据模型

    public StuModel()

    {

        this.init("");

    }

    //得到共有多少列

    public int getColumnCount()

    {

        // TODO Auto-generated method stub

        return this.columnNames.size();

    }



    //共有多少行

    public int getRowCount()

    {

        // TODO Auto-generated method stub

        return this.rowDate.size();

    }



    //得到某行某列数据

    public Object getValueAt(int row, int column)

    {

        // TODO Auto-generated method stub

        return ((Vector)this.rowDate.get(row)).get(column);

    }



}
  1 /*

  2  * 这是stu表的模型

  3  */

  4 package com.test1;

  5 

  6 import java.sql.Connection;

  7 import java.sql.DriverManager;

  8 import java.sql.PreparedStatement;

  9 import java.sql.ResultSet;

 10 import java.util.Vector;

 11 

 12 import javax.swing.table.*;

 13 

 14 public class StuModel extends AbstractTableModel

 15 {

 16     

 17     //改表列名

 18     public String getColumnName(int arg0)

 19     {

 20         // TODO Auto-generated method stub

 21         return (String)this.columnNames.get(arg0);

 22     }

 23 

 24     Vector rowDate,columnNames;

 25     

 26     

 27     //定义连接数据库需要的

 28     PreparedStatement pS=null;

 29     Connection ct=null;

 30     ResultSet rS=null;

 31     

 32     public void init(String sql)

 33     {

 34         if(sql.equals(""))

 35         {

 36             sql="select * from stu";

 37         }

 38         //中间

 39         columnNames=new Vector();

 40         //设置列名

 41         columnNames.add("学号");

 42         columnNames.add("名字");

 43         columnNames.add("性别");

 44         columnNames.add("年龄");

 45         columnNames.add("籍贯");

 46         columnNames.add("系别");

 47         

 48         rowDate=new Vector();

 49         //rowDate可以存放多行

 50         

 51         

 52         try

 53         {

 54             //加载驱动

 55             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

 56             ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.1.103:1433;databaseName=spdb","sa","123");

 57             pS=ct.prepareStatement(sql);

 58             rS=pS.executeQuery();

 59             

 60             while(rS.next())

 61             {

 62                 Vector hang =new Vector();

 63                 hang.add(rS.getString(1));

 64                 hang.add(rS.getString(2));

 65                 hang.add(rS.getString(3));

 66                 hang.add(rS.getInt(4));

 67                 hang.add(rS.getString(5));

 68                 hang.add(rS.getString(6));

 69             

 70                 rowDate.add(hang);

 71             }

 72         } catch (Exception e)

 73         {

 74             e.printStackTrace();

 75         }finally

 76         {

 77             try

 78             {

 79                 if(rS!=null) rS.close();

 80                 if(pS!=null) pS.close();

 81                 if(ct!=null) ct.close();

 82                 

 83             } catch (Exception e2)

 84             {

 85                 e2.printStackTrace();

 86                 // TODO: handle exception

 87             }

 88         }

 89     }

 90     

 91     public void addStu(String sql)

 92     {

 93         //根据用户输入的语句完成添加任务,然后必须重新获得新的模型

 94     }

 95     //通过传递的sql语句来获得数据模型

 96     public StuModel (String sql)

 97     {

 98         this.init(sql);

 99     }

100     

101     //构造函数,用于初始数据模型

102     public StuModel()

103     {

104         this.init("");

105     }

106     //得到共有多少列

107     public int getColumnCount()

108     {

109         // TODO Auto-generated method stub

110         return this.columnNames.size();

111     }

112 

113     //共有多少行

114     public int getRowCount()

115     {

116         // TODO Auto-generated method stub

117         return this.rowDate.size();

118     }

119 

120     //得到某行某列数据

121     public Object getValueAt(int row, int column)

122     {

123         // TODO Auto-generated method stub

124         return ((Vector)this.rowDate.get(row)).get(column);

125     }

126 

127 }
  1 package com.test1;

  2 

  3 import javax.swing.*;

  4 

  5 import java.sql.Connection;

  6 import java.sql.DriverManager;

  7 import java.sql.PreparedStatement;

  8 import java.sql.ResultSet;

  9 import java.util.*;

 10 import java.awt.*;

 11 import java.awt.event.*;

 12 

 13 public class StuManage extends JFrame implements ActionListener

 14 {

 15 

 16     //定义空件

 17     JPanel jp1,jp2;

 18     JLabel jl1;

 19     JButton jb1,jb2,jb3,jb4;

 20     JTable jt;

 21     JScrollPane jsp;

 22     JTextField jtf;

 23     

 24     StuModel sm;//定义一个

 25     

 26     //定义连接数据库需要的

 27         PreparedStatement pS=null;

 28         Connection ct=null;

 29         ResultSet rS=null;

 30     

 31     //public static void main(String[] args)

 32     //{

 33         //StuManage test3=new StuManage();

 34 

 35     //}

 36 

 37         public StuManage()

 38         {

 39             

 40             jp1=new JPanel();

 41             jtf=new JTextField(10);

 42             jb1=new JButton("查询");

 43             jb1.addActionListener(this);//以上方法方便用在同一个类李,通常用:jb1.setAction(arg0);

 44             jl1=new JLabel("请输入名字");

 45             

 46             //把各个控件加入jp1

 47             jp1.add(jl1);

 48             jp1.add(jtf);

 49             jp1.add(jb1);

 50             

 51             jp2=new JPanel();

 52             

 53             jb2=new JButton("添加");

 54             jb2.addActionListener(this);

 55             jb3=new JButton("修改");

 56             jb3.addActionListener(this);

 57             jb4=new JButton("删除");

 58             jb4.addActionListener(this);

 59             //把各个按钮加入jp2

 60             jp2.add(jb2);

 61             jp2.add(jb3);

 62             jp2.add(jb4);

 63             

 64         

 65             //创建一个数据模型对象

 66             sm=new StuModel();

 67             

 68             //初始化JTable

 69             jt=new JTable(sm);

 70             //初始化jsp

 71             jsp=new JScrollPane(jt);

 72             //把jsp放入jframe

 73             this.add(jsp);

 74             this.add(jp1,"North");

 75             this.add(jp2,"South");

 76             this.setSize(400,300);

 77             this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 78             this.setVisible(true);

 79             

 80         }

 81 

 82         @Override

 83         public void actionPerformed(ActionEvent arg0)

 84         {

 85             // 判断哪个按钮被点击

 86             if(arg0.getSource()==jb1)

 87             {

 88                  System.out.println("用户想查询");

 89                 //因为表的数据已经封装所以比较简单

 90                  String name=this.jtf.getText().trim();//trim()方法过滤空字符窜

 91                  //写sql语句

 92                  String sql="select * from stu where stuName='"+name+"'";

 93                  //构建新的数据模型类并更新

 94                 sm= new StuModel(sql);

 95                  jt.setModel(sm);

 96             }

 97             //当用户点击添加

 98             else if(arg0.getSource()==jb2)

 99             {

100                 StuAddDialog sa=new StuAddDialog(this,"添加学生",true);

101                 //刷新

102                 sm=new StuModel();

103                  jt.setModel(sm);

104             }else if(arg0.getSource()==jb3)

105             {

106                 int rowNum=this.jt.getSelectedRow();

107                 if(rowNum==-1)

108                 {

109                     //提示,this表示从这里框

110                     JOptionPane.showMessageDialog(this,"请选择要修改的记录");

111                     return;

112                 }else {

113                     new StuUpdDialog(this,"修改学生",true, sm, rowNum);

114                     sm=new StuModel();

115                      jt.setModel(sm);

116                 }

117             }

118             else if(arg0.getSource()==jb4)

119             {

120                 //删除记录

121                 //getSelectRow()返回用户点钟的行,如果一行都没选,就返回-1

122                 int rowNum=this.jt.getSelectedRow();

123                 if(rowNum==-1)

124                 {

125                     //提示,this表示从这里框

126                     JOptionPane.showMessageDialog(this,"请选择要删除的记录");

127                     return;

128                     

129                 }

130                 //得到学生编号

131                 String stuId=(String)sm.getValueAt(rowNum,0);

132                 System.out.println("id="+stuId);

133                 

134                 //连接数据库,完成删除任务

135                 try

136                 {

137                     Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

138                     ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.167.164:1433;databaseName=spdb","sa","123");

139                     pS=ct.prepareStatement("delete from stu where stuId=?");

140                     pS.setString(1,stuId);

141                     pS.executeUpdate();

142                 } catch (Exception e)

143                 {

144                     e.printStackTrace();

145                     // TODO: handle exception

146                 }finally

147                 {

148                     try

149                     {

150                         if(rS!=null) rS.close();

151                         if(pS!=null) pS.close();

152                         if(ct!=null) ct.close();

153                             

154                     } catch (Exception e2)

155                     {

156                         e2.printStackTrace();

157                         // TODO: handle exception

158                     }

159                 }

160                 //刷新

161                 sm=new StuModel();

162                  jt.setModel(sm);

163             }

164         }

165 }

 

 

以上代码模块分别为:

StuAddDialog,StuLogin,StuModel,StuModel,StuManage//拷贝代码上去试试。。

你可能感兴趣的:(管理)