java图形界面实验七+综合实验.docx
《java图形界面实验七+综合实验.docx》由会员分享,可在线阅读,更多相关《java图形界面实验七+综合实验.docx(10页珍藏版)》请在冰豆网上搜索。
java图形界面实验七+综合实验
实验七综合实验
实验日期:
2016年6月8号班级:
软件1405班
学号(后四位):
0727姓名:
李博成绩:
一.实验目的
1了解JDBC的作用,掌握通过JDBC访问数据库的方法。
2能够实现对数据库中数据的添加、删除、修改和查询。
二.实验内容(以学生信息管理为例,可以自拟XXX信息管理系统,实现类似的功能即可)
注意:
在写报告时,不需要写数据库连接的四个参数,也不需要写Class.forName(......),只要写上“Connectioncon=....”就行。
其它的不能省略。
1.建立一个类,利用数据库来存储多个Student,写完一个方法在main中写一段测试代码,运行以保证目前所做工作的正确性。
有以下方法:
aadd(Studentstu):
可以向其中增加新的学生,并保存在数据库中。
测试add方法是否正确:
用add方法向数据库增加一个新的学生,然后在数据库的图形管理界面中查询,确认是否增加。
bdispAll():
可以显示所有的学生信息。
cfindById(longid):
可以按照学号来查找,并显示符合条件的学生信息,查无该人的话显示错误信息。
dfindByName(Stringname):
可以按照姓名查找学生,找到后显示其信息,查无此人显示错误信息。
edelById(longid):
可以按照id删除学生的信息,然后显示找到该人。
若查无此人,显示相应的错误信息。
源代码:
Student.java:
packagemysql;
publicclassStudent{
privatelongid;
privateStringname;
privatedoubleos;
privatedoublemath;
privatedoublejava;
publiclonggetId(){
returnid;
}
publicvoidsetId(longid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicdoublegetOs(){
returnos;
}
publicvoidsetOs(doubleos){
this.os=os;
}
publicdoublegetMath(){
returnmath;
}
publicvoidsetMath(doublemath){
this.math=math;
}
publicdoublegetJava(){
returnjava;
}
publicvoidsetJava(doublejava){
this.java=java;
}
}
Conclose.java:
packagemysql;
importjava.util.*;
importjava.sql.DriverManager;
importjava.sql.Statement;
importjava.sql.*;
publicclassConclose{
Stringdriver="com.mysql.jdbc.Driver";
Stringurl="jdbc:
mysql:
//localhost:
3306/student";
Stringuser="root";
Stringpass="lb";
privateConnectioncon;
publicvoidinit()throwsException{
if(con!
=null)return;
Class.forName(driver);
con=DriverManager.getConnection(url,user,pass);
}
publicvoidclose()throwsException{
if(con!
=null)con.close();
}
/*publicvoidinitTable()throwsException{
Stringsql="createtablemyname(namevarchar(20),idbigint),";
sql+="osbigint,javabigint,mathbigint";
Statementstmt=con.createStatement();
stmt.executeUpdate(sql);
stmt.close();
}*/
/*添加学生信息*/
publicvoidadd(Studentstu)throwsSQLException{
Scannerscanner=newScanner(System.in);
System.out.println("请输入名字:
");
stu.setName(scanner.nextLine());
System.out.println("请输入学号:
");
stu.setId(scanner.nextLong());
System.out.println("请输入Os成绩:
");
stu.setOs(scanner.nextDouble());
System.out.println("请输入Java成绩:
");
stu.setJava(scanner.nextDouble());
System.out.println("请输入Math成绩:
");
stu.setMath(scanner.nextDouble());
Stringsql="insertintostudent(name,id,os,java,math)values(?
?
?
?
?
)";
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.setString(1,stu.getName());
pstmt.setLong(2,stu.getId());
pstmt.setDouble(3,stu.getOs());
pstmt.setDouble(4,stu.getJava());
pstmt.setDouble(5,stu.getMath());
pstmt.executeUpdate();
pstmt.close();
}
/*通过学号删除学生信息*/
publicvoiddelById(longid)throwsSQLException{
Stringsql="deletefromstudentwhereid="+id;
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.executeUpdate(sql);
pstmt.close();
dispAll();
}
/*通过学号查询学生信息*/
publicStudentfindByID(longid)throwsException{
Stringsql="select*fromstudentwhereid=?
";
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.setLong(1,id);
ResultSetrs=pstmt.executeQuery();
if(rs.next()){
Stringname=rs.getString("name");
System.out.printf("姓名:
%s\t",name);
System.out.printf("学号:
%d",id);
doubleos=rs.getDouble("os");
System.out.printf("Os成绩:
%.2f\t",os);
doublejava=rs.getDouble("java");
System.out.printf("Java成绩:
%.2f\t",java);
doublemath=rs.getDouble("math");
System.out.printf("Math成绩:
%.2f\t",math);
Studentstu=newStudent();
stu.setName(name);stu.setId(id);
stu.setOs(os);stu.setJava(java);
stu.setMath(math);
returnstu;
}
rs.close();
pstmt.close();
System.out.printf("没有学号为%d的学生",id);
returnnull;
}
/*通过学生姓名查询学生信息*/
publicStudentfindByName(Stringname)throwsSQLException{
Stringsql="select*fromstudentwherename=?
";
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.setString(1,name);
ResultSetrs=pstmt.executeQuery();
if(rs.next()){
System.out.printf("姓名:
%s\t",name);
longid=rs.getLong("id");
System.out.printf("学号:
%d\t",id);
doubleos=rs.getDouble("os");
System.out.printf("Os成绩:
%.2f\t",os);
doublejava=rs.getDouble("java");
System.out.printf("Java成绩:
%.2f\t",java);
doublemath=rs.getDouble("math");
System.out.printf("Math成绩:
%.2f\t",math);
Studentstu=newStudent();
stu.setName(name);stu.setId(id);
stu.setOs(os);stu.setJava(java);
stu.setMath(math);
returnstu;
}
rs.close();
pstmt.close();
System.out.printf("没有姓名为%s的学生",name);
returnnull;
}
/*显示所有学生信息*/
publicvoiddispAll()throwsSQL