![JDBC实验报告详细_第1页](http://file4.renrendoc.com/view/cfcf5f4bee5bf0ca4fb72f2a89c90c90/cfcf5f4bee5bf0ca4fb72f2a89c90c901.gif)
![JDBC实验报告详细_第2页](http://file4.renrendoc.com/view/cfcf5f4bee5bf0ca4fb72f2a89c90c90/cfcf5f4bee5bf0ca4fb72f2a89c90c902.gif)
![JDBC实验报告详细_第3页](http://file4.renrendoc.com/view/cfcf5f4bee5bf0ca4fb72f2a89c90c90/cfcf5f4bee5bf0ca4fb72f2a89c90c903.gif)
![JDBC实验报告详细_第4页](http://file4.renrendoc.com/view/cfcf5f4bee5bf0ca4fb72f2a89c90c90/cfcf5f4bee5bf0ca4fb72f2a89c90c904.gif)
![JDBC实验报告详细_第5页](http://file4.renrendoc.com/view/cfcf5f4bee5bf0ca4fb72f2a89c90c90/cfcf5f4bee5bf0ca4fb72f2a89c90c905.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
页眉内容实验二 JDBC编程一、目的通过Java数据库访问程序的编写、调试,使学生掌握JDBC编程的基本方法,熟悉常用的JDBCAPI,促进学生对概念的理解,培养动手能力。二、基本要求学生需要按时达到指定实验室上机。 调试教学中使用的程序示例,并加以修改,增加程序的功能;实现数据库访问的优化。完成实验后,需要按时提交实验报告。三、实验内容(1)复习数据库SQL语句的编写。(2)编写Java数据库(使用ODBC-JDBC驱动)公共模块。(3)建立数据库应用模型,对数据库进行操作。(4)调试程序,实现数据库的访问。3.1数据源的确定可能是我不知道怎么配置,我的电脑是 Windows7系统,和学校 WindowsXP系统的电脑配置方法不太一样,需要在 C:\Windows\System32路径中,找到odbcad32.exe才能顺利修改数据源。数据源设置好了以后就可以编辑代码并正常运行了。下面以一张截图展示我的数据库3.2数据库信息查询.一 /*此处提供了SQL包,就可以放心使用 SQL语句了*/publicclassStudents{publicstaticvoidmain(Stringargs[]){ //lookoutthis"S"of"string"!Stringdriver="";/*这里定义了driver做驱动器使用,为了美观事先定义,其实放在Class.forName的括号里也是完全正确的 */Stringurl="jdbc:odbc:students";/*此处指定了数据库,要注意两者名字一定要一样,否则找不到数据源 */页眉内容Stringquery="selectname,num,course,scorefromstudents"; //focusontheSQLlanguage:select...from...!
/*需要执行的
SQL语句*/Connectioncon=null;
/*链接的定义
*/Statements=null; /*Statement对象的定义,两者赋值是为了在try块出现异常的时候不会被判断为逻辑错误,认为变量没有赋值
null*/try{
/*第一个Class.forName(driver);
try
块实现了驱动器的启动*///lookoutthis"class"shouldwriteinHugeone!/*注意此处的Class需要大写!*/}catch(ClassNotFoundExceptione){"ClassNotFoundException:"+e.getMessage());}try{ /*第二个try块实现查询功能*/con=DriverManager.getConnection(url);/*刚刚定义的url在这里用上,此时程序才真正与数据库相连s=con.createStatement(); /*新建一个
*/Statement*/ResultSetr=s.executeQuery(query);
/*query
在这里用上,执行SQL语句,也就是按照我们的要求实现我们想完成的功能
*/"name:"+
"
num:"+
"
course:"
+
"
score:");while(r.next()){
/*逐行查询,只要有值就执行
while
里的语句
*//*注意以下的每一项 name,num等都要与数据库中的题目想吻合 */Stringr1=r.getString("name");Stringr2=r.getString("num");Stringr3=r.getString("course");Stringr4=r.getString("score");/*注意这些名字一定要与数据库中的名字吻合!当然也可以用数字代替,但是我的数据库第一列是 ID,所以要注意 name是2,num是3,以此类推*/r2+r3+r4);}}页眉内容catch(SQLExceptione){e.printStackTrace();}finally{try{s.close();
/*关闭
Statement对象*/con.close();
/*关闭连接*/}catch(SQLExceptione){e.printStackTrace();}}
"iamlagent");/*这条语句是一开始用于查找错误使用的 */}}3.3数据库信息查询.二publicclassStatement1{ /*payattentionthenameofclassmustnotbethesamewiththepublicstyle!Thefirsttimeinamedit"Statement"sothatitcan'trunsuccessfully *//*英文是编程当时留下的痕迹,当时讲类名写作 Statement,与关键字相同,因此出错不能正常运行,我的总结是在拿不准的情况加一个数字就可以避免这样的尴尬情况 */publicstaticvoidmain(Stringarg[]){Stringdriver="";Stringurl="jdbc:odbc:Students";Stringquery="select*fromstudentswherescore>90";/*整个程序与第一次编写的没有太大变动和突破,主要是对 SQL功能的了解和语句利用的熟练,当时的想法是多写多体会,没考虑创新,在此也就不对语句做重复分析了 */Connectioncon=null;页眉内容Statements=null;try{Class.forName(driver);}catch(ClassNotFoundExceptione){"ClassNotFoundException:"+e.getMessage());}try{con=DriverManager.getConnection(url);s=con.createStatement();ResultSetr=s.executeQuery(query);"name:"+"num:"+"course:"+"score");while(r.next()){Stringr1=r.getString("name");Stringr2=r.getString("num");Stringr3=r.getString("course");Stringr4=r.getString("score");;}}catch(SQLExceptione){e.printStackTrace();}finally{try{s.close();con.close();}catch(SQLExceptione){e.printStackTrace();页眉内容}}}}3.4数据库信息查询.三publicclassPreparedStatement1{publicstaticvoidmain(Stringarg[]){Stringdriver="";Stringurl="jdbc:odbc:Students";Stringquery="select*fromstudentswherescore>?";/*要实现按键盘输入的参数来选择查询数据库中的数据,因此需要用“?” */Connectioncon=null;PreparedStatementps=null;ResultSetr=null;try{Class.forName(driver);}catch(ClassNotFoundExceptione){"ClassNotFoundException:"+e.getMessage());}try{"您想要查询分数的下限是: ");con=DriverManager.getConnection(url);BufferedReader br=new BufferedReader(newInputStreamReader(System.in));/*带有缓冲区,可以实现从键盘的输入,从字符流中对文本 */try{页眉内容intms=Integer.parseInt(br.readLine().trim());/*将键盘输入的参数赋值给 ms*///thistoldmetopayatryandcatch,soiputtheminatrykuaips=con.prepareStatement(query);/*注意在这里就实现预编译了,这里要注意 prepare:小些打头,不是 prepared*/ps.setInt(1,ms); /*1是付给第一个“?”,这里就只有1个*/r=ps.executeQuery();/*因为已经预编译,这里不用在写 query*/}catch(Exceptione){;}"name:"+"num:"+"course:"+"score");while(r.next()){Stringr1=r.getString("name");Stringr2=r.getString("num");Stringr3=r.getString("course");Stringr4=r.getString("score");;}}catch(SQLExceptione){e.printStackTrace();}finally{try{ps.close();con.close();}catch(SQLExceptione){e.printStackTrace();页眉内容}}}}1.程序开始运行的程序界面:2.输入参数后的程序界面:3.5数据库信息的增添、删除、修改publicclassALL{Connectioncon=null;Statements=null;PreparedStatementps=null;Stringdriver="";Stringurl="jdbc:odbc:students";Stringquery="selectname,num,course,scorefromstudents";publicvoidinit(){/*用init()将定义的对象和变量都初始化*/try{Class.forName(driver);}catch(ClassNotFoundExceptione){"ClassNotFoundException:"+e.getMessage());}try{con=DriverManager.getConnection(url);s=con.createStatement();}catch(SQLExceptione){e.printStackTrace();}}页眉内容publicvoidoutput(){
/*先输出数据库的数据
*/try{ResultSetr=s.executeQuery(query);"name:"+"num:"+"course:"+"score:");while(r.next()){Stringr1=r.getString("name");Stringr2=r.getString("num");Stringr3=r.getString("course");Stringr4=r.getString("score");r2+r3+r4);}}catch(SQLExceptione){e.printStackTrace();}}publicvoidadd(){try{"增加语句之后:");s.executeUpdate("INSERTINTO students(name,num,course,score)VALUES('三毛','','JAVA高级应用',59)");/*执行更新方法,注意 VALUES后所赋的值对 VALUES前的数据库题目要一一对应,而且在所赋的值一定是用单引号包括 */}catch(Exceptione){e.printStackTrace();}}publicvoidchange(){try{页眉内容"改变分数之后");ps=con.prepareStatement("UPDATEstudentsSETscore=0WHEREname='三毛'");/*将name为三毛的一栏数据中的
score改为
0*/ps.executeUpdate();}catch(Exceptione){e.printStackTrace();}}publicvoiddestroy(){try{s.close();con.close();ps.close();}catch(SQLExceptione){ e.printStackTrace();}}publicstaticvoidmain(Stringarg[]){ALLa=newALL();try{a.init();a.output();a.add();a.output();a.change();a.output();
/*把需要实现的功能分开放在方法中,再在主函数中调用,逻辑清晰而且十分简洁漂亮 */}catch(Exceptione){页眉内容e.printStackTrace();}finally{a.destroy();}}}四、实验方法与实验步骤(1)根据课堂所学知识,写出 JDBC编程的步骤,熟悉 JDBC编程所用的类及接口,如Connection、Statement、ResultSet等等;(2)创建程序所要访问的数据库,打开控制面板,建立 O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公司年会老板致辞范文(17篇)
- 涉外购货合同(3篇)
- 设计车辆出入口流量与停车位布局方案
- 2024-2025学年四川省九校高二上学期12月联考历史试卷
- 2025年协作资金合同解析
- 2025年中小型企业品牌共建合作协议书
- 2025年专利权许可与技术转移合同分析
- 2025年住宅装饰施工合同
- 2025年企业流动资金贷款偿还协议合同
- 2025年城市规划策划合作发展协议
- 校本教材(生活中的物理)
- 心脏起搏器植入指南
- 融于教学的形成性评价
- 中国古代突骑研究
- 20以内进位加法100题(精心整理6套-可打印A4)
- 高中语文统编版(部编版)必修下册第六单元 大单元公开课一等奖创新教学设计
- 技术标(城镇老旧小区改造工程)
- 山东省各地市地图课件
- 2022年4月天津高考英语试题-(第一次)
- LH制造中心组织架构图职能
- 医院重点岗位工作人员轮岗制度
评论
0/150
提交评论