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();
    }
  } 

}

主界面

添加学生信息界面

修改学生信息界面

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

您可能感兴趣的文章:

  • 图书管理系统java版
  • Java+Mysql学生管理系统源码
  • 一个简陋的java图书管理系统
  • 简单实现Java版学生管理系统
  • java学生信息管理系统设计
  • java联系人管理系统简单设计
  • Java设计模块系列之书店管理系统单机版(一)
  • 相册管理系统(Java表单+xml数据库存储)
  • java开发就业信息管理系统
  • java(swing)+ mysql实现学生信息管理系统源码
(0)

相关推荐

  • 相册管理系统(Java表单+xml数据库存储)

    功能文件的上传,下载和管理 技术:1.用xml当做数据库存储信息(dom4j,xpath) 2.Java表单的文件上传和下载 3.文件目录的打散 ( Hash目录是一种优化文件存储性能的方法) 需要的jar包: commons-fileupload-1.2.2.jar.commons-io-2.1.jar.dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar -----------------------------------------------------------

  • java学生信息管理系统设计

    本例的学生信息添加进入数据库的事务(可以提交事务,事务回滚,用本地线程完善) 主页面index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <htm

  • 简单实现Java版学生管理系统

    本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWi

  • java(swing)+ mysql实现学生信息管理系统源码

    本文实例为大家分享了java实现学生信息管理系统源码,供大家参考,具体内容如下 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import

  • java开发就业信息管理系统

    本文实例为大家分享了java就业信息管理平台开发案例,供大家参考,具体内容如下 可查询公司信息,学生信息,班级信息,针对学生就业与否信息的统计,老师和管理员登录后的权限不同等 就业信息管理平台想要实现的是各个班级的学生就业情况,数据库里建有6张表,分别是班级,公司,职位,学生,登录用户. 其中就业信息在界面上显示的内容是学生信息和职位的组合,在jsp页面中是拼接来实现,如果这个学生找到工作则需要填写就业信息,否则空着.如就业截图. 在企业信息中,需要实现的功能是首先有计划招聘时间,实际招聘时间,

  • 一个简陋的java图书管理系统

    本文代码为原创一个简陋的管理系统,只做功能的测试.并没有去完善所有应有的功能,只做了输入输出查找,仅供参考! 菜单部分: import java.util.Scanner; public class Menu { int Min = 1; int Max = 3; public void getMenu(){ System.out.println("1.显示/2.输入/3.查找"); } public void getFindMenu(){ System.out.println(&qu

  • Java+Mysql学生管理系统源码

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:  

  • 图书管理系统java版

    本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出版日期.书号.价格字段.设计一个GUI界面进行书目管理.在该界面上有四个选项卡,分别是查询.插入.删除.修改.点击查询选项卡,出现的界面上有书名.作者.出版社.书号四个文本框,一个按钮和一个只读文本区.文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的"查询"按钮,可以在界面

  • java联系人管理系统简单设计

    本文实例为大家分享了java联系人管理系统毕业设计,供大家参考,具体内容如下 要求:  请使用XML保存数据,完成一个联系人管理系统.       用户必须经过认证登录后方可以使用系统.       注册.增加.删除.查看联系人功能.        分模块进行设计. 两层框架-用户交互层,Dao层.             其他支持层-数据封装层.             工具类-加密,工厂Bean. 开发步骤: 第一步:设计数据结构-XML. 第一步:设计数据结构-XML. 第三步:准备资源并

  • Java设计模块系列之书店管理系统单机版(一)

    书店管理系统: 项目练习目标 : 1.Java应用程序基本分析 2.培养面向对象编程的基本思想 3.Java基本设计模式综合应用 4.掌握分层和接口的基本设计 5.构建合理的Java应用程序包结构 6.综合应用JSE所学习的知识 7.在应用中合理使用集合框架 8.在应用中综合使用swing的常用组件 9.基本的表现层的实现机制 10.IO流和文件的基本操作 11.培养良好的Java编程习惯 12.培养调试Java程序的能力,培养改错的能力 项目功能需求 : 1.能进行操作用户的注册,修改基本信息

随机推荐