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.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,bottom; 
   
  //构造函数 
  public StuUpdateDialog(Frame owner,boolean modal,StuModel sm,int rowNum)  
  { 
    //========重写父类方法 
    super(owner,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,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(),deptTxt.getText(),idTxt.getText()}; 
      if(!tmp.cudStu(sql,"修改学生信息失败"); 
      //========关闭窗口 
      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,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(); 
    } 
  } 
   
} 

主界面

添加学生信息界面

修改学生信息界面

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340