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

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 stubnew 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);}//监听@Overridepublic void actionPerformed(ActionEvent e){// TODO Auto-generated method stubif(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();}}@Overridepublic int getColumnCount() {// TODO Auto-generated method stubreturn this.columnNames.size();}@Overridepublic int getRowCount() {// TODO Auto-generated method stubreturn this.rowDates.size();}@Overridepublic Object getValueAt(int row, int col) {// TODO Auto-generated method stubif(!rowDates.isEmpty())return ((Vector)this.rowDates.get(row)).get(col);elsereturn null;}@Overridepublic String getColumnName(int column) {// TODO Auto-generated method stubreturn (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);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(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);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(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、创建PreparedStatementps = 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 exceptione.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、创建PreparedStatementps = 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 exceptionb = 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 exceptione2.printStackTrace();}}}

主界面分明是比谁记的都清楚,比谁都更加在意,

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

相关文章:

你感兴趣的文章:

标签云: