java学生管理系统项目.docx
- 文档编号:23608390
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:29
- 大小:591.51KB
java学生管理系统项目.docx
《java学生管理系统项目.docx》由会员分享,可在线阅读,更多相关《java学生管理系统项目.docx(29页珍藏版)》请在冰豆网上搜索。
java学生管理系统项目
学生管理系统V1.0
基于javaswing技术
(如有疑问请发送邮件至lixihara@)
本系统由:
MainFrame类(主界面类),SqlHelper类(数据库操作类),StuModel类(表格模型类),StuAdd类(添加对话框类),StuUpdate类(修改对话框类)组成:
功能:
实现了基本的增加,修改,删除,查询功能
系统需要使用的工具栏小图标:
一:
功能演示:
1:
主界面
2:
添加对话框
3:
修改对话框:
5:
查询功能:
6:
删除功能
。
二:
完整代码
1:
MainFrame类(主界面类):
packagecom.stusys;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JFrame;
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
/**
*学生管理系统的主界面
*@authorlixihara@
*
*/
publicclassMainFrameextendsJFrameimplementsActionListener{
//整个界面是BorderLayout布局,北部放工具栏和搜索相关控件,南部放操作按钮
privateJPaneljpNorth,jpNorthTop,jpNorthBottom,jpSouth;
//菜单栏相关控件
privateJMenuBarjmb;
privateJMenujm1,jm2;
privateJMenuItemjmi1,jmi2,jmi3;
//工具栏相关空间
privateJToolBarjtb;
privateJButtonjb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8,jb9,jb10;
//最上部控件
privateJLabeljlQuery;
privateJTextFieldjtfQuery;
privateJButtonjbQuery;
//中部表格区域相关控件
privateJScrollPanejsp;
privateStuModelmodel;
privateJTablejtInfo;
//最底部控件
privateJButtonjbAdd,jbUpdate,jbDelete;
publicMainFrame(){
this.setTitle("学生管理系统V1.0");
//初始化各个面板
jpNorth=newJPanel();
jpNorth.setLayout(newBorderLayout());
jpNorthTop=newJPanel();
jpNorthBottom=newJPanel();
jpSouth=newJPanel();
//菜单栏
buildMenu();
//上层面板的上部工具栏组件,并添加到面板中
buildToolbar();
jpNorth.add(jpNorthTop,BorderLayout.NORTH);
//上层面板的下部查询组件
jlQuery=newJLabel("输入名字:
");
jtfQuery=newJTextField(10);
jbQuery=newJButton("查询");
jbQuery.addActionListener(this);
jpNorthBottom.add(jlQuery);
jpNorthBottom.add(jtfQuery);
jpNorthBottom.add(jbQuery);
jpNorth.add(jpNorthBottom,BorderLayout.SOUTH);
this.getContentPane().add(jpNorth,BorderLayout.NORTH);
//中部的表格组件
model=newStuModel();
Stringsql="select*fromtb_studentwhere1=?
";
String[]params=newString[]{"1"};
model.queryStudent(sql,params);//将查询到的数据放入表格模型
jtInfo=newJTable(model);//将表格模型放入表格中
jtInfo.setRowHeight(25);
jsp=newJScrollPane(jtInfo);
this.getContentPane().add(jsp,BorderLayout.CENTER);
//下部的增加修改删除控件,并通过添加到面板
jbAdd=newJButton("添加");
jbUpdate=newJButton("修改");
jbDelete=newJButton("删除");
jbAdd.addActionListener(this);
jbUpdate.addActionListener(this);
jbDelete.addActionListener(this);
jpSouth.add(jbAdd);
jpSouth.add(jbUpdate);
jpSouth.add(jbDelete);
this.getContentPane().add(jpSouth,BorderLayout.SOUTH);
//整个主界面的属性设置
Toolkittoolkit=Toolkit.getDefaultToolkit();
DimensionscreenSize=toolkit.getScreenSize();
this.setSize(screenSize.width,screenSize.height);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
//构建菜单相关控件
publicvoidbuildMenu(){
jmb=newJMenuBar();
jm1=newJMenu("管理");
jm2=newJMenu("帮助");
jmi1=newJMenuItem("添加");
jmi2=newJMenuItem("修改");
jmi3=newJMenuItem("删除");
jmi1.addActionListener(this);
jmi2.addActionListener(this);
jmi3.addActionListener(this);
jm1.add(jmi1);
jm1.add(jmi2);
jm1.add(jmi3);
jmb.add(jm1);
jmb.add(jm2);
this.setJMenuBar(jmb);
}
//构建工具栏控件的方法
publicvoidbuildToolbar(){
jtb=newJToolBar();
jtb.setLocation(0,20);
jb1=newJButton("添加",newImageIcon("pic/m01.gif"));
jb2=newJButton("修改",newImageIcon("pic/m02.gif"));
jb3=newJButton("删除",newImageIcon("pic/m03.gif"));
jb4=newJButton("添加",newImageIcon("pic/m04.gif"));
//下面是用来拓展的工具,只实现界面,没有实现功能
jb5=newJButton("添加",newImageIcon("pic/m05.gif"));
jb6=newJButton("添加",newImageIcon("pic/m06.gif"));
jb7=newJButton("添加",newImageIcon("pic/m07.gif"));
jb8=newJButton("添加",newImageIcon("pic/m08.gif"));
jb9=newJButton("添加",newImageIcon("pic/m09.gif"));
jb10=newJButton("添加",newImageIcon("pic/m10.gif"));
jb1.addActionListener(this);
jb2.addActionListener(this);
jb3.addActionListener(this);
jb4.addActionListener(this);
jb5.addActionListener(this);
jb6.addActionListener(this);
jb7.addActionListener(this);
jb8.addActionListener(this);
jb9.addActionListener(this);
jb10.addActionListener(this);
jtb.add(jb1);
jtb.add(jb2);
jtb.add(jb3);
jtb.add(jb4);
jtb.add(jb5);
jtb.add(jb6);
jtb.add(jb7);
jtb.add(jb8);
jtb.add(jb9);
jtb.add(jb10);
jpNorthTop.add(jtb);
}
//处理按钮事件
publicvoidactionPerformed(ActionEvente){
//处理查询按钮事件
if(e.getSource()==jbQuery){
StringjtfValue=jtfQuery.getText().trim();
//假如查询的时候输入的是空字符串
if(jtfValue.equals("")){
Stringsql="select*fromtb_studentwhere1=?
";
String[]params=newString[]{"1"};
model=newStuModel();
model.queryStudent(sql,params);
jtInfo.setModel(model);
}else{
//假如查询的时候输入了字符串
Stringsql="select*fromtb_studentwherestuName=?
";
String[]params=newString[]{jtfValue};
model=newStuModel();
model.queryStudent(sql,params);
jtInfo.setModel(model);
}
//处理添加按钮事件
}elseif(e.getSource()==jbAdd||e.getSource()==jmi1||e.getSource()==jb1){
StuAddadd=newStuAdd(this,"添加学生",true);
model=newStuModel();
Stringsql="select*fromtb_studentwhere1=?
";
String[]params=newString[]{"1"};
model.queryStudent(sql,params);
jtInfo.setModel(model);
}elseif(e.getSource()==jbUpdate||e.getSource()==jmi2||e.getSource()==jb2){
introwNum=this.jtInfo.getSelectedRow();
if(rowNum==-1){
JOptionPane.showMessageDialog(this,"请选择一行修改");
return;
}else{
StuUpdatestuUpdate=newStuUpdate(this,"修改学生",true,model,rowNum);
model=newStuModel();
Stringsql="select*fromtb_studentwhere1=?
";
String[]params=newString[]{"1"};
model.queryStudent(sql,params);
jtInfo.setModel(model);
}
//处理删除按钮的事件
}elseif(e.getSource()==jbDelete||e.getSource()==jmi3||e.getSource()==jb3){
introwNum=this.jtInfo.getSelectedRow();
if(rowNum==-1){
JOptionPane.showMessageDialog(this,"请选择一行删除");
return;
}else{
Stringsql="deletefromtb_studentwherestuId=?
";
StringstuId=(String)this.jtInfo.getValueAt(rowNum,0);
String[]params=newString[]{stuId};
StuModelmyModel=newStuModel();
myModel.updateStu(sql,params);
//重新获得新的数据模型
model=newStuModel();
Stringsql2="select*fromtb_studentwhere1=?
";
String[]params2=newString[]{"1"};
model.queryStudent(sql2,params2);
jtInfo.setModel(model);
}
}
}
publicstaticvoidmain(String[]args){
newMainFrame();
}
}
2:
SqlHelper类:
packagecom.stusys;
importjava.sql.*;
importjavax.sql.*;
publicclassSqlHelper{
//连接数据库的信息
privateStringdriver="com.mysql.jdbc.Driver";
privateStringurl="jdbc:
mysql:
//localhost:
3306/javaproject";
privateStringusername="root";
privateStringpassword="123";
//操作数据库的类
privateConnectionconn=null;
privatePreparedStatementps=null;
privateResultSetrs=null;
//根据无参数的sql语句获取结果集
publicResultSetqueryResult(Stringsql){
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,username,password);
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
}catch(SQLExceptione){
e.printStackTrace();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}finally{
}
returnrs;
}
//根据sql语句与参数集合获取结果集
publicResultSetqueryResult(Stringsql,String[]params){
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,username,password);
ps=conn.prepareStatement(sql);
for(inti=0;i ps.setString(i+1,params[i]); } rs=ps.executeQuery(); }catch(SQLExceptione){ e.printStackTrace(); }catch(ClassNotFoundExceptione){ e.printStackTrace(); }finally{ } returnrs; } //执行增加,修改,删除语句的方法 publicbooleanisUpdate(Stringsql,String[]params){ booleanb=true; try{ Class.forName(driver); conn=DriverManager.getConnection(url,username,password); ps=conn.prepareStatement(sql); for(inti=0;i ps.setString(i+1,params[i]); } inti=ps.executeUpdate(); if(i! =1){ b=false; }else{ b=true; } }catch(SQLExceptione){ e.printStackTrace(); }catch(ClassNotFoundExceptione){ e.printStackTrace(); }finally{ this.close(); } returnb; } //关闭数据库各种资源 publicvoidclose(){ try{ if(rs! =null){ rs.close(); rs=null; } if(ps! =null){ ps.close(); ps=null; } if(conn! =null){ conn.close(); conn=null; } }catch(Exceptione){ e.printStackTrace(); } } } 3: StuModel类: packagecom.stusys; importjavax.swing.table.AbstractTableModel; importjava.awt.*; importjava.util.*; importjava.sql.*; publicclassStuModelextendsAbstractTableModel{ //构建dao对象和相关资源 privateSqlHelpersqlHelper; privateResultSetrs=null; //创建表格的数据相关 privateVectorrowDatas,columnNames; publicStuModel(){} //执行更新,删除,修改操作 publicbooleanupdateStu(Stringsql,String[]params){ sqlHelper=newSqlHelper(); returnsqlHelper.isUpdate(sql,params); } //获取查询的数据 publicvoidqueryStudent(Stringsql,String[]params){ columnNames=newVector(); columnNames.add("学号"); columnNames.add("姓名"); columnNames.add("性别"); columnNames.add("年龄"); columnNames.add("所属部门"); columnNames.add("住址"); rowDatas=newVector(); try{ sqlHelper=newSqlHelper(); rs=sqlHelper.queryResult(sql,params); while(rs.next()){ Vectorrow=newVector(); row.add(rs.getString (1)); row.add(rs.getString (2)); row.add(rs.getString(3)); row.add(rs.getInt(4)); row.add(rs.getString(5)); row.add(rs.getString(6)); rowDatas.add(row); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ sq
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 学生 管理 系统 项目