java+SQL server2008學(xué)生信息管理系統(tǒng)源碼
本文實(shí)例為大家分享了java學(xué)生信息管理系統(tǒng)源碼的具體代碼,供大家參考,具體內(nèi)容如下
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;
//構(gòu)造函數(shù)
public StudentManage()
{
/***************************初始化面板控件***********************/
//========查詢欄
queryLab = new JLabel("請(qǐng)輸入姓名:");
queryTxt = new JTextField(10);
queryBtn = new JButton("查詢");
allBtn = new JButton("全部");
//......添加查詢欄監(jiān)聽
queryBtn.addActionListener(this);
queryBtn.setActionCommand("query");
allBtn.addActionListener(this);
allBtn.setActionCommand("all");
//========增刪改欄
addBtn = new JButton("添加");
deleteBtn = new JButton("刪除");
updateBtn = new JButton("修改");
//......添加增刪改欄監(jiān)聽
addBtn.addActionListener(this);
addBtn.setActionCommand("add");
deleteBtn.addActionListener(this);
deleteBtn.setActionCommand("delete");
updateBtn.addActionListener(this);
updateBtn.setActionCommand("update");
//========創(chuàng)建窗口整體布局
//......頂層查詢欄
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);
//......構(gòu)建整體布局
this.add(top,BorderLayout.NORTH);
this.add(jsp,BorderLayout.CENTER);
this.add(bottom,BorderLayout.SOUTH);
//========設(shè)置窗口屬性
this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(false);
}
//監(jiān)聽
@Override
public void actionPerformed(ActionEvent e)
{
// TODO Auto-generated method stub
if(e.getActionCommand().equals("query")) {
/*********************查詢***********************/
//========獲取輸入學(xué)生的姓名
String name = queryTxt.getText().trim();
if(name.length() != 0) {
//========姓名輸入有效時(shí),執(zhí)行查詢
//......定義參數(shù)
String sql = "select * from stu where stuName=?";
String []paras = {name};
//......更新模型
jtableUpdate(sql, paras);
} else {
//========姓名為空時(shí),設(shè)置提醒
JOptionPane.showMessageDialog(this, "姓名輸入不能為空");
}
} else if(e.getActionCommand().equals("add")) {
/*********************添加***********************/
new StuAddDialog(this, "添加學(xué)生信息", 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")) {
/*********************刪除***********************/
//========獲取選擇行號(hào)
int rowNum = this.resultTb.getSelectedRow();
if(rowNum == -1) {
JOptionPane.showMessageDialog(this, "請(qǐng)選擇一行");
return ;
}
//========獲取學(xué)生ID號(hào)
String stuId = (String)sm.getValueAt(rowNum, 0);
//========刪除學(xué)生
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")) {
/*********************修改***********************/
//========獲取選擇行號(hào)
int rowNum = this.resultTb.getSelectedRow();
if(rowNum == -1) {
JOptionPane.showMessageDialog(this, "請(qǐng)選擇一行");
return ;
}
new StuUpdateDialog(this, "修改學(xué)生信息", true, sm, rowNum);
String sql = "select * from stu";
jtableUpdate(sql, null);
}
}
//========更新JTable內(nèi)數(shù)據(jù)
public void jtableUpdate(String sql, String[] paras)
{
//......創(chuàng)建模型
sm = new StuModel();
sm.queryStu(sql, paras);
//......更新顯示
resultTb.setModel(sm);
}
}
2、StuModel類(學(xué)生數(shù)據(jù)庫模型)
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 = {};
}
//========增刪改學(xué)生
public boolean cudStu(String sql, String []paras)
{
return new SqlHelper().cudExecute(sql, paras);
}
//========查詢學(xué)生
public void queryStu(String sql, String []paras)
{
SqlHelper sqlHelper = null;
//========初始化JTable信息
columnNames = new Vector();
rowDates = new Vector();
columnNames.add("學(xué)號(hào)"); 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類(添加學(xué)生信息子界面)
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{
//=========面板控件
//......左側(cè)標(biāo)題欄
private JLabel idLab,nameLab,sexLab,ageLab,jgLab,deptLab;
//......右側(cè)信息選擇填寫欄
private JTextField idTxt,nameTxt,sexTxt,ageTxt,jgTxt,deptTxt;
//......添加和取消按鈕
private JButton addBtn,cancelBtn;
//......布局控件
private JPanel left,center,bottom;
//構(gòu)造函數(shù)
public StuAddDialog(Frame owner, String title, boolean modal)
{
//========重寫父類方法
super(owner, title, modal);
//========左側(cè)標(biāo)簽欄
idLab = new JLabel("學(xué)號(hào): ");
nameLab = new JLabel("姓名: ");
sexLab = new JLabel("性別: ");
ageLab = new JLabel("年齡: ");
jgLab = new JLabel("籍貫: ");
deptLab = new JLabel("系別: ");
//========右側(cè)信息填寫欄
idTxt = new JTextField();
nameTxt = new JTextField();
sexTxt = new JTextField();
ageTxt = new JTextField();
jgTxt = new JTextField();
deptTxt = new JTextField();
//========添加和取消按鈕
addBtn = new JButton("添加");
cancelBtn = new JButton("取消");
//......添加監(jiān)聽
addBtn.addActionListener(this);
addBtn.setActionCommand("add");
cancelBtn.addActionListener(this);
cancelBtn.setActionCommand("cancel");
//========創(chuàng)建布局
//......創(chuàng)建左邊欄
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);
//......創(chuàng)建右邊欄
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);
//========設(shè)置窗口屬性
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")) {
/***********************添加學(xué)生信息**************************/
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, "添加學(xué)生信息失敗");
//========關(guān)閉窗口
this.dispose();
} else if(e.getActionCommand().equals("cancel")) {
//========關(guān)閉窗口
this.dispose();
}
}
}
4、StuUpdateDialog類(修改學(xué)生信息子界面)
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{
//=========面板控件
//......左側(cè)標(biāo)題欄
private JLabel idLab,nameLab,sexLab,ageLab,jgLab,deptLab;
//......右側(cè)信息選擇填寫欄
private JTextField idTxt,nameTxt,sexTxt,ageTxt,jgTxt,deptTxt;
//......添加和取消按鈕
private JButton addBtn,cancelBtn;
//......布局控件
private JPanel left,center,bottom;
//構(gòu)造函數(shù)
public StuUpdateDialog(Frame owner, String title, boolean modal, StuModel sm, int rowNum)
{
//========重寫父類方法
super(owner, title, modal);
//========左側(cè)標(biāo)簽欄
idLab = new JLabel("學(xué)號(hào): ");
nameLab = new JLabel("姓名: ");
sexLab = new JLabel("性別: ");
ageLab = new JLabel("年齡: ");
jgLab = new JLabel("籍貫: ");
deptLab = new JLabel("系別: ");
//========右側(cè)信息填寫欄
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("取消");
//......添加監(jiān)聽
addBtn.addActionListener(this);
addBtn.setActionCommand("update");
cancelBtn.addActionListener(this);
cancelBtn.setActionCommand("cancel");
//========創(chuàng)建布局
//......創(chuàng)建左邊欄
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);
//......創(chuàng)建右邊欄
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);
//========設(shè)置窗口屬性
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")) {
/***********************修改學(xué)生信息**************************/
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, "修改學(xué)生信息失敗");
//========關(guān)閉窗口
this.dispose();
} else if(e.getActionCommand().equals("cancel")) {
//========關(guān)閉窗口
this.dispose();
}
}
}
5、SqlHelper類(最底層數(shù)據(jù)庫類)
package com.sms3;
import java.sql.*;
public class SqlHelper {
//========數(shù)據(jù)庫
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、加載驅(qū)動(dòng)
Class.forName(driver);
//========2、連接
ct = DriverManager.getConnection(url, user, passwd);
//========3、創(chuàng)建PreparedStatement
ps = ct.prepareStatement(sql);
//========4、給問號(hào)賦值
if(paras != null) {
for(int i = 0; i < paras.length; i++) {
ps.setString(i + 1, paras[i]);
}
}
//========5、執(zhí)行
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、加載驅(qū)動(dòng)
Class.forName(driver);
//========2、連接
ct = DriverManager.getConnection(url, user, passwd);
//========3、創(chuàng)建PreparedStatement
ps = ct.prepareStatement(sql);
//========4、給問號(hào)賦值
for(int i = 0; i < paras.length; i++) {
ps.setString(i + 1, paras[i]);
}
//========5、執(zhí)行
if(ps.executeUpdate() != 1) b = false;
} catch (Exception e) {
// TODO: handle exception
b = false;
e.printStackTrace();
} finally {
this.close();
}
//========返回值
return b;
}
//========關(guān)閉資源
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();
}
}
}
主界面

添加學(xué)生信息界面

修改學(xué)生信息界面

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- javaWeb實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- Java+MySQL實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)源碼
- java學(xué)生信息管理系統(tǒng)源代碼
- java實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)代碼實(shí)例
- java(swing)+ mysql實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)源碼
- 學(xué)生信息管理系統(tǒng)java版
- java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- java學(xué)生信息管理系統(tǒng)設(shè)計(jì)
- 用java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- java+io+swing實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
相關(guān)文章
SpringBoot2.x實(shí)現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴
這篇文章主要介紹了SpringBoot2.x實(shí)現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
SpringBoot整合Mybatis實(shí)現(xiàn)CRUD
這篇文章主要介紹了SpringBoot整合Mybatis實(shí)現(xiàn)CRUD的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
java 對(duì)文件夾目錄進(jìn)行深度遍歷實(shí)例代碼
這篇文章主要介紹了java 對(duì)文件夾目錄進(jìn)行深度遍歷實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-03-03
Java中關(guān)于Collections集合工具類的詳細(xì)介紹
Java提供了一個(gè)操作Set、List和Map等集合的工具類:Collections,該工具提供了大量方法對(duì)集合元素進(jìn)行排序、查詢和修改等操作,還提供了將集合對(duì)象設(shè)置為不可變、對(duì)集合對(duì)象實(shí)現(xiàn)同步控制等方法2021-09-09

