实验七+综合实验.docx
- 文档编号:3862054
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:18
- 大小:95.20KB
实验七+综合实验.docx
《实验七+综合实验.docx》由会员分享,可在线阅读,更多相关《实验七+综合实验.docx(18页珍藏版)》请在冰点文库上搜索。
实验七+综合实验
实验七综合实验
实验日期:
2016年5月26日班级:
软件1404
学号(后四位):
___****_______姓名:
___****_____成绩:
一.实验目的
1了解JDBC的作用,掌握通过JDBC访问数据库的方法。
2能够实现对数据库中数据的添加、删除、修改和查询。
二.实验内容(以学生信息管理为例,可以自拟XXX信息管理系统,实现类似的功能即可)
注意:
在写报告时,不需要写数据库连接的四个参数,也不需要写Class.forName(......),只要写上“Connectioncon=....”就行。
其它的不能省略。
1.建立一个类,利用数据库来存储多个Student,写完一个方法在main中写一段测试代码,运行以保证目前所做工作的正确性。
有以下方法:
aadd(Studentstu):
可以向其中增加新的学生,并保存在数据库中。
测试add方法是否正确:
用add方法向数据库增加一个新的学生,然后在数据库的图形管理界面中查询,确认是否增加。
bdispAll():
可以显示所有的学生信息。
cfindById(longid):
可以按照学号来查找,并显示符合条件的学生信息,查无该人的话显示错误信息。
dfindByName(Stringname):
可以按照姓名查找学生,找到后显示其信息,查无此人显示错误信息。
edelById(longid):
可以按照id删除学生的信息,然后显示找到该人。
若查无此人,显示相应的错误信息。
2(选做)在控制台显示菜单,并实现相应的功能。
菜单如下:
1显示所有学生信息2按学号查找3按姓名查找
4按学号删除5按成绩排序6退出
请输入数字(1-6)
用switch-case判断输入的内容。
当输入2或4时,显示:
请输入学号:
当输入3时,显示:
请输入姓名:
当输入5时,显示:
1按math成绩2按os成绩3按java成绩,请输入(1-3)
源代码1:
Student.java
publicclassStudent{
privatelongid;
privateStringname;
privateStringmajor;
privateStringclas;
privatedoublemathScore;
privatedoubleosScore;
privatedoublejavaScore;
publicvoidsetId(longid){
this.id=id;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicvoidsetMajor(Stringmajor){
this.major=major;
}
publicvoidsetClas(Stringclas){
this.clas=clas;
}
publicvoidsetMathScore(doublemathScore){
this.mathScore=mathScore;
}
publicvoidsetOsScore(doubleosScore){
this.osScore=osScore;
}
publicvoidsetJavaScore(doublejavaScore){
this.javaScore=javaScore;
}
publiclonggetId(){
returnid;
}
publicStringgetName(){
returnname;
}
publicStringgetMajor(){
returnmajor;
}
publicStringgetClas(){
returnclas;
}
publicdoublegetMathScore(){
returnmathScore;
}
publicdoublegetOsScore(){
returnosScore;
}
publicdoublegetJavaScore(){
returnjavaScore;
}
publicStringshow(){
Stringstr=id+"\t"+name+"\t"+major+"\t"+clas+"\t"+mathScore+"\t"+osScore+"\t"+javaScore;
returnstr;
}
}
源代码2:
StuInfoManage.java
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.Statement;
importjava.util.Scanner;
importcom.mysql.jdbc.PreparedStatement;
publicclassStuInfoManage{
Stringdriver="com.mysql.jdbc.Driver";
Stringurl="jdbc:
mysql:
//localhost:
3306/cwc?
"
+"user=root&password=&useUnicode=true&characterEncoding=utf-8";
Stringuser="root";
Stringpass="";
privateConnectionconn;
publicStuInfoManage()throwsClassNotFoundException{
Stringsql="createtableifnotexistsstudents(idbigint,namevarchar(20),";
sql+="majorvarchar(10),classvarchar(10),mathdouble,osdouble,javadouble)";
try{
if(conn!
=null)return;//已经初始化
Class.forName(driver);//动态加载mysql驱动
conn=DriverManager.getConnection(url,user,pass);//建立和数据库的连接
Statementstmt=conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoidclose()throwsSQLException{
if(conn!
=null)conn.close();
}
publicvoidadd(Studentstu){
Stringsql="insertintostudents(id,name,major,class,math,os,java)"
+"values(?
?
?
?
?
?
?
)";
try{
PreparedStatementpstmt=(PreparedStatement)conn.prepareStatement(sql);
pstmt.setLong(1,stu.getId());
pstmt.setString(2,stu.getName());
pstmt.setString(3,stu.getMajor());
pstmt.setString(4,stu.getClas());
pstmt.setDouble(5,stu.getMathScore());
pstmt.setDouble(6,stu.getOsScore());
pstmt.setDouble(7,stu.getJavaScore());
pstmt.executeUpdate();
pstmt.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoiddelById(longid){
Stringsql="deletefromstudentswhereid="+id;
try{
Statementstmt=conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoidfindById(longid){
Stringsql="select*fromstudentswhereid="+id;
try{
Statementstmt=conn.createStatement();
ResultSetrs=stmt.executeQuery(sql);
while(rs.next()){
longid1=rs.getLong("id");
Stringname=rs.getString("name");
Stringmajor=rs.getString("major");
Stringclas=rs.getString("class");
doublemathScore=rs.getDouble("math");
doubleosScore=rs.getDouble("os");
doublejavaScore=rs.getDouble("java");
Studentstu=newStudent();
stu.setId(id1);stu.setName(name);
stu.setMajor(major);stu.setClas(clas);
stu.setMathScore(mathScore);stu.setOsScore(osScore);stu.setJavaScore(javaScore);
System.out.println("学号\t姓名专业班级:
\tmath:
\tos:
\tjava:
");
System.out.println(stu.show());
}
rs.close();
stmt.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoidfindByName(Stringname){
Stringsql="select*fromstudentswherename=?
";
try{
PreparedStatementpstmt=(PreparedStatement)conn.prepareStatement(sql);
pstmt.setString(1,name);
ResultSetrs=pstmt.executeQuery();
while(rs.next()){
longid1=rs.getLong("id");
Stringname1=rs.getString("name");
Stringmajor=rs.getString("major");
Stringclas=rs.getString("class");
doublemathScore=rs.getDouble("math");
doubleosScore=rs.getDouble("os");
doublejavaScore=rs.getDouble("java");
Studentstu=newStudent();
stu.setId(id1);stu.setName(name1);
stu.setMajor(major);stu.setClas(clas);
stu.setMathScore(mathScore);stu.setOsScore(osScore);stu.setJavaScore(javaScore);
System.out.println("学号\t姓名专业班级:
\tmath:
\tos:
\tjava:
");
System.out.println(stu.show());
}
rs.close();
pstmt.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoidsort(Stringcourse){
Stringsql="select*fromstudents";
try{
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSetrs=stmt.executeQuery(sql);//executeQuery会返回结果的集合,否则返回空值
rs.last();//移动到最后一行
inttotal=rs.getRow();//得到总行数
Student[]stus=newStudent[total];
intindex=0;
rs.beforeFirst();//游标指向第一行前
while(rs.next()){
longid1=rs.getLong("id");
Stringname1=rs.getString("name");
Stringmajor=rs.getString("major");
Stringclas=rs.getString("class");
doublemathScore=rs.getDouble("math");
doubleosScore=rs.getDouble("os");
doublejavaScore=rs.getDouble("java");
Studentstu=newStudent();
stu.setId(id1);stu.setName(name1);
stu.setMajor(major);stu.setClas(clas);
stu.setMathScore(mathScore);stu.setOsScore(osScore);stu.setJavaScore(javaScore);
stus[index]=stu;
index++;
}
courseChoose(stus,course);
System.out.println("学号\t姓名专业班级:
\tmath:
\tos:
\tjava:
");
System.out.println("*********************************************************************");
for(intm=0;m System.out .println(stus[m].getId()+"\t"+stus[m].getName()+"\t" +stus[m].getMajor()+"\t"+stus[m].getClas()+"\t"+stus[m].getMathScore() +"\t"+stus[m].getOsScore()+"\t"+stus[m].getJavaScore());//入如果返回的是int类型可以用getInt() } System.out.println("*********************************************************************"); rs.close(); stmt.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } publicvoidcourseChoose(Student[]stus,Stringcourse){ if(course.equals("math")){ for(inti=0;i for(intj=i+1;j Studentstu=newStudent(); if(stus[i].getMathScore() stu=stus[i]; stus[i]=stus[j]; stus[j]=stu; } } } } elseif(course.equals("os")){ for(inti=0;i for(intj=i+1;j Studentstu=newStudent(); if(stus[i].getOsScore() stu=stus[i]; stus[i]=stus[j]; stus[j]=stu; } } } } elseif(course.equals("java")){ for(inti=0;i for(intj=i+1;j Studentstu=newStudent(); if(stus[i].getJavaScore() stu=stus[i]; stus[i]=stus[j]; stus[j]=stu; } } } } } publicvoiddispAll(){ Stringsql="select*fromstudents"; try{ Statementstmt=conn.createStatement(); ResultSetrs=stmt.executeQuery(sql);//executeQuery会返回结果的集合,否则返回空值 System.out.println("学号\t姓名专业班级: \tmath: \tos: \tjava: "); System.out.println("*********************************************************************"); while(rs.next()){ System.out .println(rs.getLong (1)+"\t"+rs.getString (2)+"\t" +rs.getString(3)+"\t"+rs.getString(4)+"\t"+rs.getDouble(5) +"\t"+rs.getDouble(6)+"\t"+rs.getDouble(7));//如果返回的是int类型可以用getInt() } System.out.println("*********************************************************************"); rs.close(); stmt.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } publicvoidmenu(){ Longid; Stringname; Stringmajor; Stringclas; doublemathScore; doubleosScore; doublejavaScore; Scannerscanner=newScanner(System.in); System.out.println("——————————————《欢迎进入学生信息管理系统》———————————————"); System.out.println("*********************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 综合