-1-北京XX大学2015学年—2016学年第1学期数据库系统实验报告书专业:计算机班级:13-2姓名:学号:实验地点:计算机中心任课教师:实验题目:使用Java语言连接并操纵数据库实验环境:WindowsServer2003、SQLServer2000实验要求:1.根据Java编程语言的复习情况,使用Java编程语言实现如下题目,并将源码与实验结果以截屏方式放置在实验报告中。输入一个整数数组,要求最大的元素和第一个元素交换,最小的元素和最后一个元素交换。编写时,不允许使用max等方法。编写完成后,使用元素数量至少为10个的数组作为输入,测试程序是否正确。2.根据JDBC学习情况,在实验报告中回答以下问题:2.1列举Java连接数据库的手段,并指出每种手段的特点。2.2指出PreparedStatement与Statemnt语句的差别及PreparedStatement语句的优势。3.针对Java连接EDUCATION数据库的练习,在实验报告中完成如下内容:3.1列出Test类的源码。实验内容:1.复习Java编程语言根据“Java入门.pdf”文件,快速重点复习Java编程在本门课程中使用的知识点:1.1Java虚拟机的工作方式及环境变量的配置。1.2Java编程语言基本知识。主要包括:Java基本数据类型,Java表达式,-2-Java控制语句,Java数组等高级数据类型等。1.3Java类和对象的知识。主要包括:Java类的结构,Java类和对象的关系,Java类的使用。1.4Java接口的知识。主要包括:Java接口和类的关系,Java类的构建。1.5Java常用类。主要包括:Math类、StringBuffer类、ArrayList类等。2.Java编程语言连接数据库的方法通过“Java访问数据库.ppt”学习Java语言连接并操作数据库的方法,重点内容包括:2.1JDBC的工作原理。了解4种JDBC连接数据库的方法,重点了解纯Java驱动方式连接数据库的手段。2.2学习JDBC的API中重点类使用方法,包括:DriverManager类,Connection类,Statement类和ResultSet类。2.3学习PreparedStatement类的使用方法。区别PreparedStatement类与Statement类,练习PreparedStatemtn类的使用。3.使用JDBC操纵EDUCATION数据库构建一个Test类,在Test类中编写实现以下内容的方法:3.1连接实验1中的EDUCATION数据库。编写ConnectionSQL方法,通过数据库名称、用户名和密码等参数,使用纯Java驱动的方式连接EDUCATION数据库,并返回连接对象。3.2构建Student实体对象。编写Student类,表示Student实体。Student类中属性通过private关键字封装,并通过Setter和Getter方法操纵字段。3.3使用Statement插入数据。编写InsertStudent方法,接受Student对象,使用Statement实现对Student表的插入操作。3.4使用PrepredStatement实现插入数据。编写InsertStudentByP方法,接受Student对象,使用PrepredStatement实现对Student表的插入操作。3.5使用Statement和ResultSet查询数据。编写Search,使用Statement和ResultSet,接受字符串类型的SQL语句,返回值为该SQL语句的枚举对象查询结果。3.7使用Statement操纵数据。使用Statement,编写Manipulate方法,接受-3-字符串类型的操纵SQL语句,并返回该SQL语句是否执行成功。3.8建立测试函数,分别测试:3.8.1测试InsertStudent方法。构建一个Student对象,使用InsertStudentByP方法插入数据库。通过查询分析器,检查数据库中是否已插入该数据。3.8.2测试InsertStudentByP方法。重新构建一个Student对象,使用InsertStudentByP方法插入数据库。通过查询分析器,检查数据库中是否已插入该数据。3.8.3测试Search方法。通过Search方法查询“至少选修两门课程的学生学号和姓名”,将结果输出到控制台。3.8.4测试Manipulate方法。通过Manipulate方法,删除3.8.1和3.8.2建立的学生信息。通过查看数据库,判断删除是否生效。实验结果:1.代码(1)Test类-4-(2)Student类(3)Operation类3.1属性-5-3.2加载链接数据库3.3关闭数据库-6-3.4查询数据库3.5学生类的输入(从键盘输入)-7-3.6查询数据库3.7删除数据库-8-2.测试(1)原始数据(2)添加数据-9-(3)查找(4)删除-10-3.Java复习程序正确输入结果:错误输入报错:-11-代码:packagedatebase_maxmin;importjava.io.Reader;importjava.util.Scanner;publicclasszhangyue{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubString[]demo1=newString[20];//用于输入int[]demo2=newint[20];//记录输入的数组intmax=0;//记录最大数intmin=32767;//记录最小数intmaxi=0;//记录最大数的下标intmini=0;//记录最小数的下标intlength=0;//记录数组的长度ScannerRead=newScanner(System.in);//输入/***数组的输入**/System.out.println(请输入数组(00代表结束):);for(inti=0;i21;i++){intch=0;while(ch==0){System.out.printf(请输入第%d个数:\n,i+1);demo1[i]=Read.nextLine();if(demo1[i].matches(^[0-9_]+$)){ch=1;}else{ch=0;System.out.println(您的输入有误请重新输入);}//判断是否为纯数字,否则报错}-12-if(demo1[i].equals(00)){System.out.println(输入结束);length=i;break;//判断以00结束}else{demo2[i]=Integer.parseInt(demo1[i]);}}/***找出最大数,最小数**/for(inti=0;ilength;i++){if(demo2[i]max){max=demo2[i];maxi=i;}if(demo2[i]min){min=demo2[i];mini=i;}}/***转化**/System.out.printf(原来的数组为:);for(inti=0;ilength;i++){System.out.printf(%d,demo2[i]);}demo2[maxi]=demo2[0];demo2[0]=max;-13-demo2[mini]=demo2[length-1];demo2[length-1]=min;System.out.printf(\n现在的数组为:);for(inti=0;ilength;i++){System.out.printf(%d,demo2[i]);}}}心得体会:这次实验是Java只是和数据库知识的链接,通过Java来是实现对数据库的操作.首先是知道了如何链接数据库,其次懂得了如何运用Java实现对数据库的添加,查询,删除等操作.