学生信息管理小程序

来源:互联网 发布:杭州美工设计培训班 编辑:程序博客网 时间:2024/06/09 17:13

1.主界面类

package com.cs.db6;


import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;

public class StuManage extends JFrame implements ActionListener{
    
    /*
     * North&Source
     */
    JPanel jp1,jp2;
    JTextField jtf1;
    JButton jb1,jb2,jb3,jb4;
    
    /*
     * Center
     */
    JTable jt1;
    JScrollPane jsp1;
    
    StuMode sm1;
    
    public StuManage(){
        jp1=new JPanel();
        jp2=new JPanel();
        jtf1=new JTextField(10);
        jb1=new JButton("查询");
        jb2=new JButton("删除");
        jb3=new JButton("修改");
        jb4=new JButton("增加");
        
        jb1.addActionListener(this);
        jb1.setActionCommand(("查询"));
        jb2.addActionListener(this);
        jb2.setActionCommand(("删除"));
        jb3.addActionListener(this);
        jb3.setActionCommand(("修改"));
        jb4.addActionListener(this);
        jb4.setActionCommand(("增加"));
        
        Vector title=new Vector();
        title.add("stuID");
        title.add("stuName");
        title.add("stuSex");
        title.add("stuAge");
        title.add("stuJg");
        title.add("stuDept");
        
        sm1=new StuMode("select * from stu");
        jt1=new JTable(sm1);
        jsp1=new JScrollPane(jt1);
        
        jp1.add(jtf1);
        jp1.add(jb1);
        
        jp2.add(jb2);
        jp2.add(jb3);
        jp2.add(jb4);
        
        this.add(jp1,BorderLayout.NORTH);
        this.add(jp2,BorderLayout.SOUTH);
        this.add(jsp1);
        
        this.setSize(800,600);
        this.setLocation(400,300);
        this.setTitle("学生管理系统");
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setVisible(true);
    }
        

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        StuManage sm1=new StuManage();
        sm1.setVisible(true);
    }


    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if(e.getActionCommand()=="查询"){
            String name=jtf1.getText();
            if(name.equals("")){
                sm1.stuQuery("select * from stu");
            }else{
                sm1.stuQuery("select * from stu where stuName='"+name+"'");
            }    
        }else if(e.getActionCommand()=="删除"){
            if(jt1.getSelectedRowCount()!=1){
                JOptionPane.showMessageDialog(this, "请先选中一行!");
            }else{
                String[] args={(String)sm1.getValueAt(jt1.getSelectedRow(), 0)};    
                sm1.stuUpdate("delete from stu where stuID=?",args);
                sm1.stuQuery("select * from stu");
            }
        }else if(e.getActionCommand()=="增加"){
            stuAddDiag stad=new stuAddDiag(this,"添加新学生",sm1);
            sm1.stuQuery("select * from stu");
        }
    }

}


2. 数据操作类

package com.cs.db6;
import java.util.*;
import javax.swing.table.*;
import java.sql.*;

public class StuMode extends AbstractTableModel {
    
    static{
        try {
            Class.forName("com.ibm.db2.jcc.DB2Driver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch blockS
            System.out.println("DB2 Driver can not be loaded!");
            e.printStackTrace();
        }
    }
    
    private Vector<String> columns;
    private Vector rows;
    
    Connection con;
    PreparedStatement ps;
    ResultSet rs;    
    
    public StuMode(String sql){
        rows=new Vector();
        columns=new Vector();
        
        columns.add("stuID");
        columns.add("stuName");
        columns.add("stuSex");
        columns.add("stuAge");
        columns.add("stuJg");
        columns.add("stuDept");
        stuQuery(sql);
    }
    
    public boolean stuUpdate(String sql,String []args){
        boolean ret=true;
        
        
        try {
            con=DriverManager.getConnection("jdbc:db2://localhost:60000/sample","db2inst1","cater_2010");
            ps=con.prepareStatement(sql);
            for(int i=0;i<args.length;i++){
                ps.setString(i+1, args[i]);
            }
            ps.execute();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            try {
                if(!rs.isClosed()) rs.close();
                if(!ps.isClosed()) ps.close();
                if(!con.isClosed()) con.close();
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
        
        return ret;
    }
    
    public void stuQuery(String sql){
        
        
        /*
         * 读取数据库中的数据,并更新JTable内容
         */
        try {
            con=DriverManager.getConnection("jdbc:db2://localhost:60000/sample","db2inst1","cater_2010");
            ps=con.prepareStatement(sql);
            rs=ps.executeQuery();
            rows.clear();
            while(rs.next()){
                Vector row=new Vector();
                row.add(rs.getString(1));
                row.add(rs.getString(2));
                row.add(rs.getString(3));
                row.add(rs.getString(4));
                row.add(rs.getString(5));
                row.add(rs.getString(6));
                rows.add(row);
            }
            System.out.println(rows);
            this.fireTableDataChanged();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            try {
                if(!rs.isClosed()) rs.close();
                if(!ps.isClosed()) ps.close();
                if(!con.isClosed()) con.close();
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
    }
    
    @Override
    public String getColumnName(int column) {
        // TODO Auto-generated method stub
        return columns.get(column);
    }

    @Override
    public int getColumnCount() {
        // TODO Auto-generated method stub
        return columns.size();
    }

    @Override
    public int getRowCount() {
        // TODO Auto-generated method stub
        return rows.size();
    }

    @Override
    public Object getValueAt(int row, int col) {
        // TODO Auto-generated method stub
        return ((Vector)rows.get(row)).get(col);
    }

}

3. 添加对话框类

package com.cs.db6;

import java.awt.BorderLayout;
import java.awt.Dialog;
import java.awt.GridLayout;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.*;

public class stuAddDiag extends JDialog implements ActionListener{
    JPanel jp1,jp2,jp3,jp4;
    JLabel jl1,jl2,jl3,jl4,jl5,jl6;
    JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6;
    JButton jb1,jb2;
    StuMode sm;
    
    public stuAddDiag(JFrame owner,String title,StuMode sm){
        super(owner,title,true);
        this.sm=sm;
        /*
         * 添加控件
         */
        jp1=new JPanel();
        jp2=new JPanel();
        jp3=new JPanel();
        jp4=new JPanel();
        
        jl1=new JLabel("stuID");
        jl2=new JLabel("stuName");
        jl3=new JLabel("stuSex");
        jl4=new JLabel("stuAge");
        jl5=new JLabel("stuJg");
        jl6=new JLabel("stuDept");
        
        jtf1=new JTextField(10);
        jtf2=new JTextField(10);
        jtf3=new JTextField(10);
        jtf4=new JTextField(10);
        jtf5=new JTextField(10);
        jtf6=new JTextField(10);
        
        jb1=new JButton("添加");
        jb2=new JButton("取消");
        
        jb1.addActionListener(this);
        jb1.setActionCommand("添加");
        jb2.addActionListener(this);
        jb2.setActionCommand("取消");
        
        jp1.setLayout(new GridLayout(1,2));
        jp3.setLayout(new GridLayout(6,1));
        jp4.setLayout(new GridLayout(6,1));
        
        jp3.add(jl1);
        jp3.add(jl2);
        jp3.add(jl3);
        jp3.add(jl4);
        jp3.add(jl5);
        jp3.add(jl6);
        
        jp4.add(jtf1);
        jp4.add(jtf2);
        jp4.add(jtf3);
        jp4.add(jtf4);
        jp4.add(jtf5);
        jp4.add(jtf6);
        
        jp1.add(jp3);
        jp1.add(jp4);
        
        jp2.add(jb1);
        jp2.add(jb2);
        
        this.add(jp1);
        this.add(jp2,BorderLayout.SOUTH);
        
        this.setSize(250,200);
        this.setLocationRelativeTo(owner);
        this.setVisible(true);
        
    }

    @Override
    public void actionPerformed(ActionEvent action) {
        // TODO Auto-generated method stub
        if(action.getActionCommand().equals("取消")){
            this.dispose();
        }else if(action.getActionCommand().equals("添加")){

            String []args={jtf1.getText(),jtf2.getText(),jtf3.getText(),jtf4.getText(),jtf5.getText(),jtf6.getText()};
            sm.stuUpdate("insert into stu values (?,?,?,?,?,?)", args);
            this.dispose();        
        }    
    }
}


0 0
原创粉丝点击