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(); } } }
主界面
添加学生信息界面
修改学生信息界面
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。