学生管理系统实验报告.docx
- 文档编号:12194457
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:20
- 大小:117.12KB
学生管理系统实验报告.docx
《学生管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《学生管理系统实验报告.docx(20页珍藏版)》请在冰豆网上搜索。
学生管理系统实验报告
实验报告
课程名称:
数据库实验实验项目:
综合应用
姓名:
穆光远指导教师:
成丽君
学号:
学院:
软件学院
年级专业:
软件13级班级:
1310班
学生成绩:
上课时间:
阅卷评语:
阅卷教师(签名)
学生管理系统实验报告
一需求分析
在如今的高校日常管理当中,学生管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生管理更具有非常大的实际应用意义。
但是,我们看到,其实我们学校的学生管理在很多方面做的并不是很完善。
管理成为学校教学管理中十分重要又相当复杂的管理工作之一,单纯的采用传统的手工处理已经不符合教育和管理的要求,而计算机具有运算速度快,处理能力强等特点,很自然地进入到这一应用领域中。
因此为了保证学校的信息流畅,工作高效,有必要设计一个学生成绩管理系统。
这不但能使教务人员从复杂的成绩管理中解脱出来,而且对于推动教学的发展也起到非常重要的作用。
二ER图
三创建数据库的步骤
使用SQL创建数据库,如下命令:
Createtablestudent(idchar(20),namechar(20),genderchar
(2),addresschar(50),phonechar(20),majortext(30));
四用JAVA开发系统前端的步骤过程
1、学生管理系统主界面(StudentManagement)
/核心代码/
publicclassEX12_5_StudentManagementextendsJFrameimplementsActionListener{
JMenuBarbar=null;
JMenumenu1,menu2,menu3,menu4,menu5;
JMenuItemitem1,item2,item3,item4,item5;
EX12_6_StudentAddzengjia;
EX12_7_StudentQuerychaxun;
EX12_8_StudentUpdategengxin;
EX12_9_StudentDeleteshanchu;
……
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==item1){
this.getContentPane().removeAll();
this.getContentPane().add(zengjia,"Center");
this.getContentPane().repaint();
this.getContentPane().validate();
}
if(e.getSource()==item2){
this.getContentPane().removeAll();
this.getContentPane().add(chaxun,"Center");
this.getContentPane().repaint();
this.getContentPane().validate();
}
if(e.getSource()==item3){
this.getContentPane().removeAll();
this.getContentPane().add(gengxin,"Center");
this.getContentPane().repaint();
this.getContentPane().validate();
}
if(e.getSource()==item4){
this.getContentPane().removeAll();
this.getContentPane().add(shanchu,"Center");
this.getContentPane().repaint();
this.getContentPane().validate();
}
if(e.getSource()==item5){
System.exit(0);
}
}
publicstaticvoidmain(String[]args)
{
EX12_5_StudentManagementstuM=newEX12_5_StudentManagement();
stuM.setVisible(true);
stuM.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
}
}
2、学生信息录入界面(StudentAdd)
/核心代码/
EX12_6_StudentAdd(){
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundExceptione){}
try{
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/xskc","root","");
sql=con.createStatement();
}
catch(SQLExceptionee){}
……
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==b1){
try{insert();}
catch(SQLExceptionee){}
JOptionPane.showMessageDialog(this,"数据已入库!
","提示对话框",JOptionPane.INFORMATION_MESSAGE);
}
elseif(e.getSource()==b2){
tf1.setText("");
tf2.setText("");
tf3.setText("");
tf4.setText("");
tf5.setText("");
tf6.setText("");
}
}
publicvoidinsert()throwsSQLException{
Strings1="'"+tf1.getText().trim()+"'";
Strings2="'"+tf2.getText().trim()+"'";
Strings3="'"+tf3.getText().trim()+"'";
Strings4="'"+tf4.getText().trim()+"'";
Strings5="'"+tf5.getText().trim()+"'";
Strings6="'"+tf6.getText().trim()+"'";
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/xskc","root","");
Stringtemp="INSERTINTOstudentVALUES("+s1+","+s2+","+s3+","+s4+","+s5+","+s6+")";
sql.executeUpdate(temp);
con.close();
}
}
3、学生信息查询界面(StudentQuery)
/核心代码/
EX12_7_StudentQuery(){
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundExceptione){}
try{
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/xskc","root","");
sql=con.createStatement();
}
catch(SQLExceptionee){}
……
}
publicvoidactionPerformed(ActionEvente){
flag=0;
try{query();}
catch(SQLExceptionee){}
}
publicvoidquery()throwsSQLException{
Stringnum,name,gender,address,phone,major;
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/xskc","root","");
num=t1.getText().trim();
ResultSetrs=sql.executeQuery("SELECT*FROMstudentwhereid='"+num+"'");
if(rs.next()){
//num=rs.getString("ID");
name=rs.getString("name");
gender=rs.getString("gender");
address=rs.getString("address");
phone=rs.getString("phone");
major=rs.getString("major");
//if(num.equals(t1.getText().trim())){
t2.setText(name);
t3.setText(gender);
t4.setText(address);
t5.setText(phone);
t6.setText(major);
flag=1;
//break;
//}
}else
{
JOptionPane.showMessageDialog(this,"没有该学生!
","提示对话框",JOptionPane.INFORMATION_MESSAGE);
}
con.close();
if(flag==0){t1.setText("没有该学生");}
}
}
4、学生信息更新界面(StudentUpdate)
/核心代码/
EX12_8_StudentUpdate(){
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundExceptione){}
try{
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/xskc","root","");
sql=con.createStatement();
}
catch(SQLExceptionee){}
……
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==b1){
try{
Stringnum,name,gender,address,phone,major;
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/xskc","root","");
num=t1.getText().trim();
ResultSetrs=sql.executeQuery("SELECT*FROMstudentwhereid='"+num+"'");
if(rs.next()){
//num=rs.getString("id");
name=rs.getString("name");
gender=rs.getString("gender");
address=rs.getString("address");
phone=rs.getString("phone");
major=rs.getString("major");
//if(num.equals(t1.getText().trim())){
t2.setText(name);
t3.setText(gender);
t4.setText(address);
t5.setText(phone);
t6.setText(major);
//break;
//}
}else{
JOptionPane.showMessageDialog(this,"没有该学生!
","提示对话框",JOptionPane.INFORMATION_MESSAGE);
}
con.close();
}
catch(SQLExceptionee){}
}
if(e.getSource()==b2){
try{update();}
catch(SQLExceptionee){}
}
if(e.getSource()==b3){
t2.setText("");
t3.setText("");
t4.setText("");
t5.setText("");
t6.setText("");
}
}
publicvoidupdate()throwsSQLException{
Strings1="'"+t1.getText().trim()+"'";
Strings2="'"+t2.getText().trim()+"'";
Strings3="'"+t3.getText().trim()+"'";
Strings4="'"+t4.getText().trim()+"'";
Strings5="'"+t5.getText().trim()+"'";
Strings6="'"+t6.getText().trim()+"'";
Stringtemp="UPDATEstudentSETname="+s2+",gender="+s3+",address="+s4+",phone="+s5+",major="+s6+"WHEREid="+s1;
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/xskc","root","");
sql.executeUpdate(temp);
JOptionPane.showMessageDialog(this,"修改成功!
","提示对话框",JOptionPane.INFORMATION_MESSAGE);
con.close();
}
}
5、学生信息删除界面(StudentDelete)
/核心代码/
EX12_9_StudentDelete(){
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundExceptione){
}
try{
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/xskc","root","");
sql=con.createStatement();
}catch(SQLExceptionee){
}
……
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==t1){
try{
delete();
}catch(SQLExceptionee){
}
}elseif(e.getSource()==b){
try{
delete();
}catch(SQLExceptionee){
}
intn=JOptionPane.showConfirmDialog(this,"确定要删除该学生的全部信息吗?
",
"确定",JOptionPane.YES_NO_OPTION);
if(n==JOptionPane.YES_OPTION){
try{
Strings1="'"+t1.getText().trim()+"'";
Stringtemp="DELETEFROMstudentWHEREid="+s1;
System.out.println(temp);
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/xskc","root","");
sql.executeUpdate(temp);
JOptionPane.showMessageDialog(this,"删除成功!
","提示对话框",
JOptionPane.INFORMATION_MESSAGE);
con.close();
}catch(SQLExceptionee){
}
}elseif(n==JOptionPane.NO_OPTION){
}
}
}
publicvoiddelete()throwsSQLException{
Stringnum,name,gender,address,phone,major;
con=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/xskc","root","");
num=t1.getText().trim();
ResultSetrs=sql.executeQuery("select*FROMstudentwhereid='"
+num+"'");
if(rs.next()){
//num=rs.getString("id");
name=rs.getString("name");
gender=rs.getString("gender");
address=rs.getString("address");
phone=rs.getString("phone");
major=rs.getString("major");
//if(num.equals(t1.getText().trim())){
t2.setText(name);
t3.setText(gender);
t4.setText(address);
t5.setText(phone);
t6.setText(major);
//break;
//}
}else{
JOptionPane.showMessageDialog(this,"没有该学生!
","提示对话框",
JOptionPane.INFORMATION_MESSAGE);
}
con.close();
}
}
五连接数据库步骤
各步骤简单描述如下:
(1)加载驱动程序。
为数据库管理系统加载一个JDBC驱动程序。
通过Class.forName()方法调用来完成这一操作,需要给出驱动类的名称。
(2)打开数据库连接。
使用驱动程序打开特定数据库的连接。
(3)获取Statement对象。
(4)执行SQL语句。
通过Statement提出SQL请求。
(5)处理结果集。
如果返回结果集则对结果集进行处理。
(1)加载驱动程序
通过类装载器来加载相应的数据库驱动程序,格式为:
Class.forName(driverName)
importjava.sql.*;
publicclassEX12_1_StudentSQL{
publicstaticvoidmain(String[]args){
Connectioncon=null;
Statementstmt=null;
StringstrTemp="";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundExceptione){}
}
(2)建立连接
通过DriverManager:
Connectioncon=DriverManager.getConnection(url,user,password);
(3)获取statement
statement用来发送要执行的sql语句。
有三种Statement对象。
①Statement
执行不带参数的sql语句。
创建方法:
connection.createStatement()
②PreParedStatement
执行带参数或不带参数的预编译的SQL语句,下次执行的时候就不要编译和优化了。
创建方法:
只有SELECT语句才会有结果集返回。
代码片断如下:
while(rs.next()){//rs是一个游标,初始时在第一条记录的上面一行。
//每next一次,向下一行。
rs.getString
(1);
rs.getInt
(2);
}
可以使用位置标识,也可以使用列名来标识(当结果集字段比较多的时候用列名标识法,可以增强程序的可读性)。
最终代码
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
/**
*1首先要安装有JDK。
*2然后安装MySQL。
*3配置好这两个环境后,下载JDBC驱动mysql-connector-java-5.0.5.zip。
*然后将其解压缩到任一目录。
然后将其目录下的mysql-connector-java-5.0.5-bin.jar加到classpath里,
*4环境配置好了。
现在,先配置Java连接MySQL,设其用户名为“root”,密
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 管理 系统 实验 报告