学生信息管理程序Java报告.docx
《学生信息管理程序Java报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理程序Java报告.docx(10页珍藏版)》请在冰豆网上搜索。
学生信息管理程序Java报告
大连民族学院
计算机科学与工程学院实验报告
实验题目:
数据库编程
课程名称:
Java语言
实验类型:
□演示性□验证性□操作性□设计性█综合性
专业:
软件工程班级:
093班
学生姓名:
杜娟学号:
**********
实验日期:
2010年6月1日实验地点:
多媒体机房
(一)
实验学时:
4实验成绩:
指导教师签字:
年月日
实验题目:
学生信息管理系统
一.实验目的
1.掌握JAVA基本语法与面向对象编程特点
2.理解JAVAI/O编程。
3.掌握数据库连接的方法与技巧。
4.掌握简单数据库应用程序的编写。
5.掌握使用Java语言编写图形界面。
二.预习内容
Java的基本语法知识、类和对象、JavaSwing图形界面编程、JavaI/O处理以及Java与数据库连接操作。
三.实验设备与环境
通过局域网互联,安装windows7操作系统环境的JDK1.6,myeclipse。
并安装Oracle数据库。
四.实验任务
1.基本要求:
学生信息(包括学号、姓名、性别、年龄、家庭住址、电话等)的添加,删除,修改,查询(包括按学号,按姓名等查询)。
2.提高要求(依据自身情况自选):
可填加班级信息(也可删除、修改班级),学生信息中包含班级信息,可按班级统计学生。
简单统计,按性别统计等。
五.实验内容
5.1验证性实验程序分析
①构建实验指导书中的student数据库表
createtablestudent(
snointprimarykey,
snamevarchar(20),
sexchar
(2),
sageint);
②验证性实验程序的运行结果及理解
程序1功能分析:
直接在程序中向数据库插入一条记录,插入后将数据表中所有记录输出。
运行结果:
图1
原理:
在与数据库连接的基础上,进行插入操作,sql="INSERTINTOSTUDENT"+"VALUES(7968,'赵小龙','男',20)";把这一信息插入到表中,在通过查询语句sql="SELECT*FROMSTUDENT";将这一数据输出。
程序2功能分析:
控制台下输入数据并向student表中插入记录,插入后将数据表中所有记录输出。
运行结果:
图2
原理:
手动输入学生信息,然后通过:
sql="INSERTINTOSTUDENT"+"VALUES('"+num+"'"+","+"'"+name+"'"+
",'"+sex+"',"+age+")";将这些信息插入到表中,在通过sql="SELECT*FROMSTUDENT";将所有信息输出。
程序3功能分析:
控制台下按性别条件查询Student表中数据并输出。
运行结果:
图3
原理:
手工输入性别后,通过sql="SELECTsno,sname,sageFROMSTUDENTwheresex=?
";PreparedStatementstmt0
=con.prepareStatement(sql);stmt0.setString(1,sex);设置第一个“?
”参数值为sex变量的值,就可以输出要查询的内容。
5.2数据库应用程序的开发
5.2.1数据库分析
(1)概念模型:
(2)数据库表设计:
学生表:
createtableifstudent(
snonumber(38)primarykey,
cnointnotnull,
snamevarchar(30)notnull,
sexvarchar(30)notnull,
sagenumber(38)notnull,
addressvarchar(80)notnull,
phonevarchar(30)notnull
);
insertintoifstudentvaluse(1,1,'xiaohong','girl',20,'shenyang','123');
5.2.2程序功能模块
主菜单显示:
图4
5.2.3程序运行结果
(1)添加学生信息
1.图形展示
图5
返回形式:
第一种添加成功,会得到响应
;如果有主码错误或其他操作失误,同样会有相应的响应如下:
2.代码部分
if(a[0][0]!
=""&&a[0][1]!
=""&&a[0][2]!
=""&&a[0][3]!
=""&&a[0][4]!
=""&&a[0][5]!
=""){
sql="INSERTINTOifStudent"+"VALUES('"+a[0][0]+"'"+","+"'"+a[0][1]+"'"
+",'"+a[0][2]+"','"+a[0][3]+"','"+a[0][4]+"',"+a[0][5]+")";//执行插入的sql语句
k=stmt.executeUpdate(sql);}
else{
JOptionPane.showMessageDialog(this,"添加失败","失败",JOptionPane.PLAIN_MESSAGE);
}
if(k==1){
JOptionPane.showMessageDialog(this,"添加成功","成
功",JOptionPane.PLAIN_MESSAGE);
}else{
JOptionPane.showMessageDialog(this,"添加失败","
失败",JOptionPane.PLAIN_MESSAGE);}
(2)查询学生信息
1.图形展示
图6
2.代码部分
intk=0;sql="select*fromifstudent";PreparedStatement
stmt1con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSetrs=stmt1.executeQuery();
rs.last();intlastNumber=rs.getRow();a=newObject[lastNumber][6];rs.beforeFirst();
while(rs.next()){
a[k][0]=rs.getInt("sno");
a[k][1]=rs.getString("sname");
a[k][2]=rs.getString("sex");
a[k][3]=rs.getInt("sage");
a[k][4]=rs.getString("address");
a[k][5]=rs.getString("phone");
k++;
}
table=newJTable(a,name);getContentPane().removeAll();
add(showRecord,BorderLayout.NORTH);
add(newJScrollPane(table),BorderLayout.CENTER);
validate();
(3)修改学生信息
1.图形部分
对学号是1的学生的信息进行修改:
图7
根据学号进行查询学号为1的同学的信息:
图8
修改学号为1的同学的信息:
图9
按照类别选择查询信息:
图10
2.程序流程图
查询:
3.代码部分
①查询判断部分
if(e.getSource()==inputNumber)try{num=inputNumber.getText().trim();
con=DriverManager.getConnection(url,"system","system");
sql=con.createStatement();
rs=sql.executeQuery("select*fromifstudentwheresno='"+num+"'");booleanboo=rs.next();
if(boo==false){JOptionPane.showMessageDialog(this,"学号不存在","
提示",JOptionPane.WARNING_MESSAGE);}
else{
a[0][0]=rs.getInt("sno");
a[0][1]=rs.getString("sname");
a[0][2]=rs.getString("sex");
a[0][3]=rs.getInt("sage");
a[0][4]=rs.getString("address");
a[0][5]=rs.getString("phone");
table.repaint();}
②修改信息部分
sql.executeUpdate("UPDATEifstudentSETsname='"
+a[0][1]+"',sex='"+a[0][2]+"',sage='"+a[0][3]+"',address='"+a[0][4]+"',phone='"+a[0][5]+"'WHEREsno='"+num+"'");JOptionPane.showMessageDialog(this,"更新成功","成功",JOptionPane.PLAIN_MESSAGE);
(4)删除学生信息
1.图形展示
图11
2.代码部分
sql="deletefromifstudentwheresno="+num;PreparedStatementstmt1=con.prepareStatement(sql);
stmt1.executeQuery();
JOptionPane.showMessageDialog(this,"删除成功","
成功",JOptionPane.PLAIN_MESSAGE);
六.实验总结
6.1程序编译过程中遇到的问题及解决方法
(1)在刚开始编程序是运行完后总是显示用数据库建的表不存在。
解决:
检查在进行与数据库的连接时DataSourceName是否与con=DriverManager.getConnection("jdbc:
odbc:
thin:
@localhost:
1521:
test","system","system")中的数据源名字一致。
(2)在数据库表中明明插入了数据却不显示。
解决:
检查在数据库进行Insert后是否进行commit操作。
6.2心得体会
通过本次实验,我对Java语言有了一定的了解,并对Java与数据库的连接有了充足的认识。
例如:
如何实现图形界面,如何与数据库连接等等,由于之前对课堂上老师讲解的内容掌握的不扎实,这些方面都给我带来了很多问题,整个实验都在慢慢的摸索中进行,遇到不会的问题就查阅相关书籍,文档,开源代码或者请教身边同学,问题才会迎刃而解。
而我认为其中最重要的是遇到问题是要细心和耐心,总体来说这次实验使我收获颇多。