java+SQL server2008学生信息管理系统源码

时间:2019-04-12
本文章向大家介绍java+SQL server2008学生信息管理系统源码,主要包括java+SQL server2008学生信息管理系统源码使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文实例为大家分享了java学生信息管理系统源码的具体代码,供大家参考,具体内容如下

1、StudetManage类(主界面)

package com.sms3; 
 
import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
 
public class StudentManage extends JFrame implements ActionListener  
{ 
  /** 
   * @param args 
   */ 
  public static void main(String[] args)  
  { 
    // TODO Auto-generated method stub 
    new StudentManage(); 
  } 
 
  //========面板控件 
  private JLabel queryLab = null; 
  private JTextField queryTxt = null; 
  private JButton queryBtn = null; 
  private JButton allBtn = null; 
  private JTable resultTb = null; 
  private JScrollPane jsp = null; 
  private JButton addBtn = null; 
  private JButton deleteBtn = null; 
  private JButton updateBtn = null; 
  private JPanel top = null; 
  private JPanel bottom = null; 
  //======== 
  private StuModel sm = null; 
   
  //构造函数 
  public StudentManage() 
  { 
    /***************************初始化面板控件***********************/ 
    //========查询栏 
    queryLab = new JLabel("请输入姓名:"); 
    queryTxt = new JTextField(10); 
    queryBtn = new JButton("查询"); 
    allBtn = new JButton("全部"); 
    //......添加查询栏监听 
    queryBtn.addActionListener(this); 
    queryBtn.setActionCommand("query"); 
    allBtn.addActionListener(this); 
    allBtn.setActionCommand("all"); 
    //========增删改栏 
    addBtn = new JButton("添加"); 
    deleteBtn = new JButton("删除"); 
    updateBtn = new JButton("修改"); 
    //......添加增删改栏监听 
    addBtn.addActionListener(this); 
    addBtn.setActionCommand("add"); 
    deleteBtn.addActionListener(this); 
    deleteBtn.setActionCommand("delete"); 
    updateBtn.addActionListener(this); 
    updateBtn.setActionCommand("update"); 
    //========创建窗口整体布局 
    //......顶层查询栏 
    top = new JPanel(); 
    top.add(queryLab); 
    top.add(queryTxt); 
    top.add(queryBtn); 
    top.add(allBtn); 
    //......底层增删改栏 
    bottom = new JPanel(); 
    bottom.add(addBtn); 
    bottom.add(deleteBtn); 
    bottom.add(updateBtn); 
    //......中间层显示栏 
    sm = new StuModel(); 
    String sql = "select * from stu"; 
    sm.queryStu(sql, null); 
    resultTb = new JTable(sm); 
    jsp = new JScrollPane(resultTb); 
    //......构建整体布局 
    this.add(top,BorderLayout.NORTH); 
    this.add(jsp,BorderLayout.CENTER); 
    this.add(bottom,BorderLayout.SOUTH); 
    //========设置窗口属性 
    this.setSize(400, 300); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    this.setVisible(true); 
    this.setResizable(false); 
  } 
   
  //监听 
  @Override 
  public void actionPerformed(ActionEvent e) 
  { 
    // TODO Auto-generated method stub 
    if(e.getActionCommand().equals("query")) { 
      /*********************查询***********************/ 
      //========获取输入学生的姓名 
      String name = queryTxt.getText().trim(); 
      if(name.length() != 0) { 
        //========姓名输入有效时,执行查询 
        //......定义参数 
        String sql = "select * from stu where stuName=?"; 
        String []paras = {name}; 
        //......更新模型 
        jtableUpdate(sql, paras); 
      } else { 
        //========姓名为空时,设置提醒 
        JOptionPane.showMessageDialog(this, "姓名输入不能为空"); 
      } 
    } else if(e.getActionCommand().equals("add")) { 
      /*********************添加***********************/ 
      new StuAddDialog(this, "添加学生信息", true); 
      String sql = "select * from stu"; 
      jtableUpdate(sql, null); 
    } else if(e.getActionCommand().equals("all")) { 
      /*********************全部显示***********************/ 
      String sql = "select * from stu"; 
      jtableUpdate(sql, null); 
    } else if(e.getActionCommand().equals("delete")) { 
      /*********************删除***********************/ 
      //========获取选择行号 
      int rowNum = this.resultTb.getSelectedRow(); 
      if(rowNum == -1) { 
        JOptionPane.showMessageDialog(this, "请选择一行"); 
        return ; 
      } 
      //========获取学生ID号 
      String stuId = (String)sm.getValueAt(rowNum, 0); 
      //========删除学生 
      String sql = "delete from stu where stuId=?"; 
      String []paras = {stuId}; 
      StuModel tmp = new StuModel(); 
      tmp.cudStu(sql, paras); 
      //========更新模型 
      sql = "select * from stu"; 
      jtableUpdate(sql, null); 
    } else if(e.getActionCommand().equals("update")) { 
      /*********************修改***********************/ 
      //========获取选择行号 
      int rowNum = this.resultTb.getSelectedRow(); 
      if(rowNum == -1) { 
        JOptionPane.showMessageDialog(this, "请选择一行"); 
        return ; 
      } 
      new StuUpdateDialog(this, "修改学生信息", true, sm, rowNum); 
      String sql = "select * from stu"; 
      jtableUpdate(sql, null); 
    } 
  } 
   
  //========更新JTable内数据 
  public void jtableUpdate(String sql, String[] paras) 
  { 
    //......创建模型 
    sm = new StuModel(); 
    sm.queryStu(sql, paras); 
    //......更新显示 
    resultTb.setModel(sm); 
  } 
 
} 

2、StuModel类(学生数据库模型)

package com.sms3; 
 
import java.sql.ResultSet; 
import java.util.Vector; 
import javax.swing.table.AbstractTableModel; 
 
public class StuModel extends AbstractTableModel{ 
  private Vector columnNames; 
  private Vector rowDates; 
   
  // 
  public StuModel() 
  { 
    String sql = "select * from stu"; 
    String []paras = {}; 
     
  } 
   
  //========增删改学生 
  public boolean cudStu(String sql, String []paras) 
  { 
    return new SqlHelper().cudExecute(sql, paras); 
  } 
   
  //========查询学生 
  public void queryStu(String sql, String []paras) 
  { 
    SqlHelper sqlHelper = null; 
    //========初始化JTable信息 
    columnNames = new Vector(); 
    rowDates = new Vector(); 
    columnNames.add("学号"); columnNames.add("名字"); 
    columnNames.add("性别"); columnNames.add("年龄"); 
    columnNames.add("籍贯"); columnNames.add("系别"); 
     
    try { 
      sqlHelper = new SqlHelper(); 
      ResultSet rs = sqlHelper.queryExecute(sql, paras); 
      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)); 
        rowDates.add(row); 
      } 
    } catch (Exception e) { 
      // TODO: handle exception 
    } finally { 
      sqlHelper.close(); 
    } 
     
  } 
 
  @Override 
  public int getColumnCount() { 
    // TODO Auto-generated method stub 
    return this.columnNames.size(); 
  } 
 
  @Override 
  public int getRowCount() { 
    // TODO Auto-generated method stub 
    return this.rowDates.size(); 
  } 
 
  @Override 
  public Object getValueAt(int row, int col) { 
    // TODO Auto-generated method stub 
    if(!rowDates.isEmpty()) 
      return ((Vector)this.rowDates.get(row)).get(col); 
    else 
      return null; 
  } 
 
   
  @Override 
  public String getColumnName(int column) { 
    // TODO Auto-generated method stub 
    return (String)this.columnNames.get(column); 
  } 
 
   
} 

3、StuAddDialog类(添加学生信息子界面)

package com.sms3; 
 
import java.awt.BorderLayout; 
import java.awt.Dialog; 
import java.awt.Frame; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
 
import javax.swing.*; 
 
public class StuAddDialog extends JDialog implements ActionListener{ 
  //=========面板控件 
  //......左侧标题栏 
  private JLabel idLab,nameLab,sexLab,ageLab,jgLab,deptLab; 
  //......右侧信息选择填写栏 
  private JTextField idTxt,nameTxt,sexTxt,ageTxt,jgTxt,deptTxt; 
  //......添加和取消按钮 
  private JButton addBtn,cancelBtn; 
  //......布局控件 
  private JPanel left,center,bottom; 
   
  //构造函数 
  public StuAddDialog(Frame owner, String title, boolean modal)  
  { 
    //========重写父类方法 
    super(owner, title, modal); 
    //========左侧标签栏 
    idLab = new JLabel("学号: "); 
    nameLab = new JLabel("姓名: "); 
    sexLab = new JLabel("性别: "); 
    ageLab = new JLabel("年龄: "); 
    jgLab = new JLabel("籍贯: "); 
    deptLab = new JLabel("系别: "); 
    //========右侧信息填写栏 
    idTxt = new JTextField(); 
    nameTxt = new JTextField(); 
    sexTxt = new JTextField(); 
    ageTxt = new JTextField(); 
    jgTxt = new JTextField(); 
    deptTxt = new JTextField(); 
    //========添加和取消按钮 
    addBtn = new JButton("添加"); 
    cancelBtn = new JButton("取消"); 
    //......添加监听 
    addBtn.addActionListener(this); 
    addBtn.setActionCommand("add"); 
    cancelBtn.addActionListener(this); 
    cancelBtn.setActionCommand("cancel"); 
    //========创建布局 
    //......创建左边栏 
    left = new JPanel(); 
    left.setLayout(new GridLayout(6, 1)); 
    left.add(idLab); left.add(nameLab);  
    left.add(sexLab); left.add(ageLab);  
    left.add(jgLab); left.add(deptLab);  
    //......创建右边栏 
    center = new JPanel(); 
    center.setLayout(new GridLayout(6, 1)); 
    center.add(idTxt); center.add(nameTxt); 
    center.add(sexTxt); center.add(ageTxt); 
    center.add(jgTxt); center.add(deptTxt); 
    //========底层添加和取消按钮 
    bottom = new JPanel(); 
    bottom.add(addBtn); 
    bottom.add(cancelBtn); 
    //========整体布局 
    this.add(left,BorderLayout.WEST); 
    this.add(center,BorderLayout.CENTER); 
    this.add(bottom,BorderLayout.SOUTH); 
    //========设置窗口属性 
     
    this.setSize(300, 250); 
    this.setResizable(false); 
    this.setVisible(true); 
  } 
 
  @Override 
  public void actionPerformed(ActionEvent e)  
  { 
    // TODO Auto-generated method stub 
    if(e.getActionCommand().equals("add")) { 
      /***********************添加学生信息**************************/ 
      StuModel tmp = new StuModel(); 
      String sql = "insert into stu values(?,?,?,?,?,?)"; 
      String []paras = {idTxt.getText(),nameTxt.getText(),sexTxt.getText(), 
              ageTxt.getText(),jgTxt.getText(),deptTxt.getText()}; 
      if(!tmp.cudStu(sql, paras)) 
        JOptionPane.showMessageDialog(this, "添加学生信息失败"); 
      //========关闭窗口 
      this.dispose(); 
    } else if(e.getActionCommand().equals("cancel")) { 
      //========关闭窗口 
      this.dispose(); 
    } 
  } 
} 

4、StuUpdateDialog类(修改学生信息子界面)

package com.sms3; 
 
import java.awt.BorderLayout; 
import java.awt.Frame; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
 
import javax.swing.JButton; 
import javax.swing.JDialog; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 
import javax.swing.table.AbstractTableModel; 
 
public class StuUpdateDialog extends JDialog implements ActionListener{ 
  //=========面板控件 
  //......左侧标题栏 
  private JLabel idLab,nameLab,sexLab,ageLab,jgLab,deptLab; 
  //......右侧信息选择填写栏 
  private JTextField idTxt,nameTxt,sexTxt,ageTxt,jgTxt,deptTxt; 
  //......添加和取消按钮 
  private JButton addBtn,cancelBtn; 
  //......布局控件 
  private JPanel left,center,bottom; 
   
  //构造函数 
  public StuUpdateDialog(Frame owner, String title, boolean modal, StuModel sm, int rowNum)  
  { 
    //========重写父类方法 
    super(owner, title, modal); 
    //========左侧标签栏 
    idLab = new JLabel("学号: "); 
    nameLab = new JLabel("姓名: "); 
    sexLab = new JLabel("性别: "); 
    ageLab = new JLabel("年龄: "); 
    jgLab = new JLabel("籍贯: "); 
    deptLab = new JLabel("系别: "); 
    //========右侧信息填写栏 
    idTxt = new JTextField();   
    idTxt.setText((String)sm.getValueAt(rowNum, 0)); 
    idTxt.setEditable(false); 
    nameTxt = new JTextField(); 
    nameTxt.setText((String)sm.getValueAt(rowNum, 1)); 
    sexTxt = new JTextField(); 
    sexTxt.setText((String)sm.getValueAt(rowNum, 2)); 
    ageTxt = new JTextField(); 
    ageTxt.setText((String)sm.getValueAt(rowNum, 3)); 
    jgTxt = new JTextField(); 
    jgTxt.setText((String)sm.getValueAt(rowNum, 4)); 
    deptTxt = new JTextField(); 
    deptTxt.setText((String)sm.getValueAt(rowNum, 5)); 
    //========添加和取消按钮 
    addBtn = new JButton("修改"); 
    cancelBtn = new JButton("取消"); 
    //......添加监听 
    addBtn.addActionListener(this); 
    addBtn.setActionCommand("update"); 
    cancelBtn.addActionListener(this); 
    cancelBtn.setActionCommand("cancel"); 
    //========创建布局 
    //......创建左边栏 
    left = new JPanel(); 
    left.setLayout(new GridLayout(6, 1)); 
    left.add(idLab); left.add(nameLab);  
    left.add(sexLab); left.add(ageLab);  
    left.add(jgLab); left.add(deptLab);  
    //......创建右边栏 
    center = new JPanel(); 
    center.setLayout(new GridLayout(6, 1)); 
    center.add(idTxt); center.add(nameTxt); 
    center.add(sexTxt); center.add(ageTxt); 
    center.add(jgTxt); center.add(deptTxt); 
    //========底层添加和取消按钮 
    bottom = new JPanel(); 
    bottom.add(addBtn); 
    bottom.add(cancelBtn); 
    //========整体布局 
    this.add(left,BorderLayout.WEST); 
    this.add(center,BorderLayout.CENTER); 
    this.add(bottom,BorderLayout.SOUTH); 
    //========设置窗口属性 
     
    this.setSize(300, 250); 
    this.setResizable(false); 
    this.setVisible(true); 
  } 
 
  @Override 
  public void actionPerformed(ActionEvent e) { 
    // TODO Auto-generated method stub 
    if(e.getActionCommand().equals("update")) { 
    /***********************修改学生信息**************************/ 
      StuModel tmp = new StuModel(); 
      String sql = "update stu set stuName=?,stuSex=?,stuAge=?,stuJg=?,stuDept=? where stuId=?"; 
      String []paras = {nameTxt.getText(),sexTxt.getText(),ageTxt.getText(), 
              jgTxt.getText(),deptTxt.getText(),idTxt.getText()}; 
      if(!tmp.cudStu(sql, paras)) 
        JOptionPane.showMessageDialog(this, "修改学生信息失败"); 
      //========关闭窗口 
      this.dispose(); 
    } else if(e.getActionCommand().equals("cancel")) { 
      //========关闭窗口 
      this.dispose(); 
    } 
  } 
} 

5、SqlHelper类(最底层数据库类)

package com.sms3; 
 
import java.sql.*; 
 
public class SqlHelper { 
  //========数据库 
  private Connection ct = null; 
  private PreparedStatement ps = null; 
  private ResultSet rs = null; 
  private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
  private String url = "jdbc:sqlserver://127.0.0.1:1433;database=studentMan"; 
  private String user = "sa"; 
  private String passwd = "****"; 
   
  //========查询 
  public ResultSet queryExecute(String sql, String []paras) 
  { 
    try { 
      //========1、加载驱动 
      Class.forName(driver); 
      //========2、连接 
      ct = DriverManager.getConnection(url, user, passwd); 
      //========3、创建PreparedStatement 
      ps = ct.prepareStatement(sql); 
      //========4、给问号赋值 
      if(paras != null) { 
        for(int i = 0; i < paras.length; i++) { 
          ps.setString(i + 1, paras[i]); 
        } 
      } 
      //========5、执行 
      rs = ps.executeQuery(); 
    } catch (Exception e) { 
      // TODO: handle exception 
      e.printStackTrace(); 
    } finally { 
      //this.close(); 
    } 
    //========返回值 
    return rs; 
  } 
   
  //========增删改 
  public boolean cudExecute(String sql, String []paras) 
  { 
    boolean b = true; 
    try { 
      //========1、加载驱动 
      Class.forName(driver); 
      //========2、连接 
      ct = DriverManager.getConnection(url, user, passwd); 
      //========3、创建PreparedStatement 
      ps = ct.prepareStatement(sql); 
      //========4、给问号赋值 
      for(int i = 0; i < paras.length; i++) { 
        ps.setString(i + 1, paras[i]); 
      } 
      //========5、执行 
      if(ps.executeUpdate() != 1) b = false; 
    } catch (Exception e) { 
      // TODO: handle exception 
      b = false; 
      e.printStackTrace(); 
    } finally { 
      this.close(); 
    } 
    //========返回值 
    return b; 
  } 
   
  //========关闭资源 
  public void close() 
  { 
    try { 
      if(rs!=null) rs.close(); 
      if(ps!=null) ps.close(); 
      if(ct!=null) ct.close(); 
    } catch (Exception e2) { 
      // TODO: handle exception 
      e2.printStackTrace(); 
    } 
  } 
   
} 

主界面

添加学生信息界面

修改学生信息界面

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。