实验七+综合实验_第1页
实验七+综合实验_第2页
实验七+综合实验_第3页
实验七+综合实验_第4页
实验七+综合实验_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA实验七 软件1404 * *实验七 综合实验 实验日期: 2016 年 5 月 26 日 班级: 软件1404 学号(后四位):_*_ 姓名:_*_ 成绩: 一. 实验目的1 了解JDBC的作用,掌握通过JDBC访问数据库的方法。2 能够实现对数据库中数据的添加、删除、修改和查询。二. 实验内容(以学生信息管理为例,可以自拟XXX信息管理系统,实现类似的功能即可)注意:在写报告时,不需要写数据库连接的四个参数,也不需要写Class.forName(.),只要写上“Connection con=.”就行。其它的不能省略。1.建立一个类,利用数据库来存储多个Student,写完一个方法在main中写一段测试代码,运行以保证目前所做工作的正确性。有以下方法: a add(Student stu):可以向其中增加新的学生,并保存在数据库中。 测试add方法是否正确:用add方法向数据库增加一个新的学生,然后在数据库的图形管理界面中查询,确认是否增加。 b dispAll():可以显示所有的学生信息。 c findById(long id):可以按照学号来查找,并显示符合条件的学生信息,查无该人的话显示错误信息。 d findByName(String name):可以按照姓名查找学生,找到后显示其信息,查无此人显示错误信息。 e delById(long id):可以按照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.javapublic class Student private long id;private String name;private String major;private String clas;private double mathScore;private double osScore;private double javaScore;public void setId(long id)this.id=id;public void setName(String name)=name;public void setMajor(String major) this.major = major;public void setClas(String clas) this.clas = clas;public void setMathScore(double mathScore) this.mathScore = mathScore;public void setOsScore(double osScore) this.osScore = osScore;public void setJavaScore(double javaScore)this.javaScore=javaScore; public long getId() return id;public String getName() return name;public String getMajor() return major;public String getClas() return clas;public double getMathScore() return mathScore;public double getOsScore() return osScore;public double getJavaScore() return javaScore;public String show()String str=id+t+name+t+major+t+clas+t+mathScore+t+osScore+t+javaScore;return str;源代码2:StuInfoManage.javaimport java.sql.ResultSet;import java.sql.SQLException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;import java.util.Scanner;import com.mysql.jdbc.PreparedStatement;public class StuInfoManage String driver=com.mysql.jdbc.Driver;String url = jdbc:mysql:/localhost:3306/cwc?+ user=root&password=&useUnicode=true&characterEncoding=utf-8;String user=root;String pass=;private Connection conn;public StuInfoManage() throws ClassNotFoundExceptionString sql = create table if not exists students(id bigint,name varchar(20),;sql+= major varchar(10),class varchar(10),math double,os double,java double);try if(conn!=null) return;/已经初始化Class.forName(driver);/ 动态加载mysql驱动conn = DriverManager.getConnection(url,user,pass);/建立和数据库的连接Statement stmt = conn.createStatement();stmt.executeUpdate(sql);stmt.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public void close() throws SQLExceptionif(conn!=null) conn.close();public void add(Student stu)String sql=insert into students(id,name,major,class,math,os,java)+ values(?,?,?,?,?,?,?); try PreparedStatement pstmt=(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 (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public void delById(long id) String sql=delete from students where id=+id;try Statement stmt=conn.createStatement();stmt.executeUpdate(sql);stmt.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public void findById(long id)String sql=select * from students where id=+id;try Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(sql);while(rs.next()long id1=rs.getLong(id);String name=rs.getString(name);String major=rs.getString(major);String clas=rs.getString(class);double mathScore=rs.getDouble(math);double osScore=rs.getDouble(os);double javaScore=rs.getDouble(java);Student stu=new Student();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:t os:tjava:);System.out.println(stu.show();rs.close();stmt.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public void findByName(String name)String sql=select * from students where name=?;try PreparedStatement pstmt=(PreparedStatement) conn.prepareStatement(sql);pstmt.setString(1, name);ResultSet rs=pstmt.executeQuery();while(rs.next()long id1=rs.getLong(id);String name1=rs.getString(name);String major=rs.getString(major);String clas=rs.getString(class);double mathScore=rs.getDouble(math);double osScore=rs.getDouble(os);double javaScore=rs.getDouble(java);Student stu=new Student();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:t os:tjava:);System.out.println(stu.show(); rs.close();pstmt.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public void sort(String course)String sql = select * from students;try Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSet rs = stmt.executeQuery(sql);/ executeQuery会返回结果的集合,否则返回空值rs.last();/移动到最后一行int total=rs.getRow();/得到总行数Student stus=new Studenttotal;int index=0;rs.beforeFirst();/游标指向第一行前while (rs.next() long id1=rs.getLong(id);String name1=rs.getString(name);String major=rs.getString(major);String clas=rs.getString(class);double mathScore=rs.getDouble(math);double osScore=rs.getDouble(os);double javaScore=rs.getDouble(java);Student stu=new Student();stu.setId(id1);stu.setName(name1);stu.setMajor(major);stu.setClas(clas);stu.setMathScore(mathScore);stu.setOsScore(osScore);stu.setJavaScore(javaScore);stusindex=stu;index+;courseChoose(stus,course);System.out.println(学号t 姓名 专业 班级:tmath:t os:tjava:);System.out.println(*);for(int m=0;mstus.length;m+)System.out.println(stusm.getId() + t + stusm.getName()+t + stusm.getMajor() + t + stusm.getClas()+t +stusm.getMathScore()+ t + stusm.getOsScore()+t+stusm.getJavaScore();/ 入如果返回的是int类型可以用getInt()System.out.println(*);rs.close();stmt.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public void courseChoose(Student stus,String course)if(course.equals(math)for(int i = 0 ; i stus.length-1 ; i+)for(int j = i+1 ; j stus.length ; j+)Student stu=new Student();if(stusi.getMathScore() stusj.getMathScore()stu = stusi;stusi = stusj;stusj = stu;else if(course.equals(os)for(int i = 0 ; i stus.length-1 ; i+)for(int j = i+1 ; j stus.length ; j+)Student stu=new Student();if(stusi.getOsScore() stusj.getOsScore()stu = stusi;stusi = stusj;stusj = stu;else if(course.equals(java)for(int i = 0 ; i stus.length-1 ; i+)for(int j = i+1 ; j stus.length ; j+)Student stu=new Student();if(stusi.getJavaScore()stusj.getJavaScore()stu = stusi;stusi = stusj;stusj = stu; public void dispAll()String sql = select * from students;try Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);/ executeQuery会返回结果的集合,否则返回空值System.out.println(学号t 姓名 专业 班级:tmath:t os: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 (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public void menu()Long id;String name;String major;String clas;double mathScore;double osScore;double javaScore;Scanner scanner=new Scanner(System.in);System.out.println(欢 迎 进 入 学 生 信 息 管 理 系 统);System.out.println( *);System.out.println( * 1. 显示学生信息 *);System.out.println( * 2. 录入学生信息 *);System.out.println( * 3. 学号查找学生 *);System.out.println( * 4. 姓名查找学生 *);System.out.println( * 5. 删除学生信息 *);System.out.println( * 6. 排 序 *);System.out.println( * 0. 退 出 系 统 *);System.out.println( *);System.out.print(你可以执行以上操作,请输入你的选择(0-6):);switch(scanner.nextInt()case 1:dispAll();menu();break;case 2:System.out.print(请输入学号:);id=scanner.nextLong();System.out.print(请输入姓名:);name=scanner.next();System.out.print(请输入专业:);major=scanner.next();System.out.print(请输入班级:);clas=scanner.next();System.out.print(请输入mathScore:);mathScore=scanner.nextDouble();System.out.print(请输入osScore:); osScore=scanner.nextDouble();System.out.print(请输入javaScore:);javaScore=scanner.nextDouble();Student stu=new Student();stu.setId(id);stu.setName(name);stu.setMajor(major);stu.setClas(clas);stu.setMathScore(mathScore);stu.setOsScore(osScore);stu.setJavaScore(javaScore);add(stu);System.out.println(添加学生信息

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论