学生信息管理小程序
来源:互联网 发布:杭州美工设计培训班 编辑:程序博客网 时间:2024/06/09 17:13
1.主界面类
package com.cs.db6;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class StuManage extends JFrame implements ActionListener{
/*
* North&Source
*/
JPanel jp1,jp2;
JTextField jtf1;
JButton jb1,jb2,jb3,jb4;
/*
* Center
*/
JTable jt1;
JScrollPane jsp1;
StuMode sm1;
public StuManage(){
jp1=new JPanel();
jp2=new JPanel();
jtf1=new JTextField(10);
jb1=new JButton("查询");
jb2=new JButton("删除");
jb3=new JButton("修改");
jb4=new JButton("增加");
jb1.addActionListener(this);
jb1.setActionCommand(("查询"));
jb2.addActionListener(this);
jb2.setActionCommand(("删除"));
jb3.addActionListener(this);
jb3.setActionCommand(("修改"));
jb4.addActionListener(this);
jb4.setActionCommand(("增加"));
Vector title=new Vector();
title.add("stuID");
title.add("stuName");
title.add("stuSex");
title.add("stuAge");
title.add("stuJg");
title.add("stuDept");
sm1=new StuMode("select * from stu");
jt1=new JTable(sm1);
jsp1=new JScrollPane(jt1);
jp1.add(jtf1);
jp1.add(jb1);
jp2.add(jb2);
jp2.add(jb3);
jp2.add(jb4);
this.add(jp1,BorderLayout.NORTH);
this.add(jp2,BorderLayout.SOUTH);
this.add(jsp1);
this.setSize(800,600);
this.setLocation(400,300);
this.setTitle("学生管理系统");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
StuManage sm1=new StuManage();
sm1.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getActionCommand()=="查询"){
String name=jtf1.getText();
if(name.equals("")){
sm1.stuQuery("select * from stu");
}else{
sm1.stuQuery("select * from stu where stuName='"+name+"'");
}
}else if(e.getActionCommand()=="删除"){
if(jt1.getSelectedRowCount()!=1){
JOptionPane.showMessageDialog(this, "请先选中一行!");
}else{
String[] args={(String)sm1.getValueAt(jt1.getSelectedRow(), 0)};
sm1.stuUpdate("delete from stu where stuID=?",args);
sm1.stuQuery("select * from stu");
}
}else if(e.getActionCommand()=="增加"){
stuAddDiag stad=new stuAddDiag(this,"添加新学生",sm1);
sm1.stuQuery("select * from stu");
}
}
}
2. 数据操作类
package com.cs.db6;
import java.util.*;
import javax.swing.table.*;
import java.sql.*;
public class StuMode extends AbstractTableModel {
static{
try {
Class.forName("com.ibm.db2.jcc.DB2Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch blockS
System.out.println("DB2 Driver can not be loaded!");
e.printStackTrace();
}
}
private Vector<String> columns;
private Vector rows;
Connection con;
PreparedStatement ps;
ResultSet rs;
public StuMode(String sql){
rows=new Vector();
columns=new Vector();
columns.add("stuID");
columns.add("stuName");
columns.add("stuSex");
columns.add("stuAge");
columns.add("stuJg");
columns.add("stuDept");
stuQuery(sql);
}
public boolean stuUpdate(String sql,String []args){
boolean ret=true;
try {
con=DriverManager.getConnection("jdbc:db2://localhost:60000/sample","db2inst1","cater_2010");
ps=con.prepareStatement(sql);
for(int i=0;i<args.length;i++){
ps.setString(i+1, args[i]);
}
ps.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
if(!rs.isClosed()) rs.close();
if(!ps.isClosed()) ps.close();
if(!con.isClosed()) con.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
return ret;
}
public void stuQuery(String sql){
/*
* 读取数据库中的数据,并更新JTable内容
*/
try {
con=DriverManager.getConnection("jdbc:db2://localhost:60000/sample","db2inst1","cater_2010");
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
rows.clear();
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));
rows.add(row);
}
System.out.println(rows);
this.fireTableDataChanged();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
if(!rs.isClosed()) rs.close();
if(!ps.isClosed()) ps.close();
if(!con.isClosed()) con.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
@Override
public String getColumnName(int column) {
// TODO Auto-generated method stub
return columns.get(column);
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return columns.size();
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return rows.size();
}
@Override
public Object getValueAt(int row, int col) {
// TODO Auto-generated method stub
return ((Vector)rows.get(row)).get(col);
}
}
3. 添加对话框类
package com.cs.db6;
import java.awt.BorderLayout;
import java.awt.Dialog;
import java.awt.GridLayout;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.*;
public class stuAddDiag extends JDialog implements ActionListener{
JPanel jp1,jp2,jp3,jp4;
JLabel jl1,jl2,jl3,jl4,jl5,jl6;
JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6;
JButton jb1,jb2;
StuMode sm;
public stuAddDiag(JFrame owner,String title,StuMode sm){
super(owner,title,true);
this.sm=sm;
/*
* 添加控件
*/
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
jp4=new JPanel();
jl1=new JLabel("stuID");
jl2=new JLabel("stuName");
jl3=new JLabel("stuSex");
jl4=new JLabel("stuAge");
jl5=new JLabel("stuJg");
jl6=new JLabel("stuDept");
jtf1=new JTextField(10);
jtf2=new JTextField(10);
jtf3=new JTextField(10);
jtf4=new JTextField(10);
jtf5=new JTextField(10);
jtf6=new JTextField(10);
jb1=new JButton("添加");
jb2=new JButton("取消");
jb1.addActionListener(this);
jb1.setActionCommand("添加");
jb2.addActionListener(this);
jb2.setActionCommand("取消");
jp1.setLayout(new GridLayout(1,2));
jp3.setLayout(new GridLayout(6,1));
jp4.setLayout(new GridLayout(6,1));
jp3.add(jl1);
jp3.add(jl2);
jp3.add(jl3);
jp3.add(jl4);
jp3.add(jl5);
jp3.add(jl6);
jp4.add(jtf1);
jp4.add(jtf2);
jp4.add(jtf3);
jp4.add(jtf4);
jp4.add(jtf5);
jp4.add(jtf6);
jp1.add(jp3);
jp1.add(jp4);
jp2.add(jb1);
jp2.add(jb2);
this.add(jp1);
this.add(jp2,BorderLayout.SOUTH);
this.setSize(250,200);
this.setLocationRelativeTo(owner);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent action) {
// TODO Auto-generated method stub
if(action.getActionCommand().equals("取消")){
this.dispose();
}else if(action.getActionCommand().equals("添加")){
String []args={jtf1.getText(),jtf2.getText(),jtf3.getText(),jtf4.getText(),jtf5.getText(),jtf6.getText()};
sm.stuUpdate("insert into stu values (?,?,?,?,?,?)", args);
this.dispose();
}
}
}
- 学生信息管理小程序
- 练手小程序2 学生信息管理系统
- 学生信息管理小程序(线索二叉树实现)
- 小程序:学生信息管理系统--C语言版本
- 小程序:学生信息管理系统--C语言版本(升级版)
- C语言:学生信息管理程序
- 学生信息管理系统的小麻烦
- c++小项目(学生信息管理系统)
- C#下的学生信息管理程序
- 程序阅读:简单C++学生信息管理系统
- 第九周 程序阅读-学生信息管理系统
- 自定义函数练习~学生信息管理程序
- 学生信息管理
- 学生信息管理
- 学生信息管理
- 学生信息管理
- 学生信息管理
- 学生信息管理
- iic-调试笔记
- 付出
- 条款34:区分接口继承和实现继承
- BZOJ 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
- Miller_Rabin大素数测试与Pollard_rho整数分解模版
- 学生信息管理小程序
- IOS中常用的四种数据持久化方法简介
- LeetCode——Permutations II
- Fragment详细解说一
- Codeforces 463E Caisa and Tree dfs+分解质因素
- iOS 碰撞检测以及事件响应
- poj 1094 Sorting It All Out
- BZOJ 1610: [Usaco2008 Feb]Line连线游戏
- iOS开源免费接口