




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章,JDBC(一),目标,了解JDBC的四类驱动理解JDBC的访问方式掌握基本数据库访问理解JDBC中异常,概述,大多数开发语言都提供了数据库的访问JDBC是由sun公司提供的一组接口和类,被封装在java.sql包中,用于访问数据库数据库厂商所提供的第三方驱动程序和类包,可以访问特定数据库,JDBC概述,JDBC允许大型应用程序把数据写到JDBC接口上,通过接口与数据库交换信息。因而编程人员不必太关心与该应用程序一起使用的是那种数据库,JDBC概述,一个完整的JDBC应用由三部分组成驱动程序驱动程序管理器应用程序,JDBC概述,JDBC的四类驱动JDBC-ODBC桥加ODBC驱动程序2.本地API3.JDBC网络纯JAVA驱动程序4.本地协议纯JAVA驱动程序,基本数据库访问,通过JDBC的接口和类进行数据库访问,基本数据库访问,JDBC访问数据库的一般步骤引入必要的类加载注册JDBC驱动程序标示数据源分配一个Connection对象分配一个Statement对象使用该Statement对象执行查询从返回的ResultSet对象中检索数据关闭ResultSet对象关闭Statement对象关闭Connection对象,基本数据库访问,java.sql包,数据库驱动程序注册,加载桥驱动程序并注册,/加载驱动程序类Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/注册驱动程序DriverManager.registerDriver(newsun.jdbc.odbc.JdbcOdbcDriver();,J2EE的商业开发通常会搭配Oracle数据库,/加载oracle驱动程序Class.forName(oracle.jdbc.driver.OracleDriver);/注册DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver();,当一个JDBC驱动程序类被加载时会自动向DriverManager注册自己,所以这里可以省略注册的语句:DriverManager.registerDriver();,数据库连接对象,建立连接,Connectioncon=DriverManager.getConnection(url,login_name,login_password);,url为连接字符串,语法格式如下:,jdbc:,数据库连接对象,ODBC连接,Connectioncon=DriverManager.getConnection(jdbc:odbc:wish_weas,scott,tiger);,oraclethin驱动,Connectioncon=DriverManager.getConnection(jdbc:oracle:thin:localhost:1521:weas,scott,tiger);,oracleoci驱动,Connectioncon=DriverManager.getConnection(jdbc:oracle:oci:weas,scott,tiger);,语句对象,创建Statement对象,Statementstmt=conn.createStatement();,执行INSERT、UPDATE或者DELETE语句,stmt.executeUpdate(query);/query为所要执行的sql语句,执行SELECT语句,ResultSetrs=stmt.executeQuery(query);/rs为记录集对象,记录集对象,ResultSet接口来操纵结果集中的记录ResultSet对象主要提供三大类方法1.当前记录指示器移动方法,rs.next();/当前记录指针移动到下一条记录上,2.当前记录字段值获取方法getXXX,Stringname=rs.getString(ename);/通过字段名访问Stringname=rs.getString(2);/通过字段位置访问,3.更新当前字段值的方法updateXXX,rs.update(ename,jack);/通过字段名更新rs.update(2,jack);/通过字段位置访问,关闭数据库对象,关闭ResultSet对象rs.close();关闭Statement对象stmt.close();关闭Connection对象con.close();,记录集对象,从数据库emp表中读取员工的编号(empno)和姓名(ename),Statementstmt=con.createStatement();Stringquery=SELECTempno,enameFROMEMP;stmt.execute(query);ResultSetrs=stmt.getResultSet();while(rs.next()inti=rs.getInt(1);/得到当前记录的第一个字段(empno)的值Stringname=rs.getString(2);/得到第二个字段(ename)的值System.out.println(Integer.toString(i)+name);,特殊记录集,返回结果记录集分为两大类仅向前、不可更新记录集,Statementstmt=Con.createStatement();ResultSetrs=stmt.executeQuery(selectempno,enamefromemp);,可滚动、可更新记录集,Statementstmt=Con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSetrs=stmt.executeQuery(selectempno,enamefromemp);,特殊记录集,可滚动、可更新记录集,指定以上两种模式时要求select语句不能带*号,特殊记录集,可滚动、可更新记录集可以使用的移动记录集指针的方法,next()移动到记录集的下一条,没有返回false,否则返回trueprevious()移动到前一条记录first()移动到第一条记录last()移动到最后一条记录absolute(introwNumber)移动到rowNumber指定的行relative(intrelativeRowNumber)移动到相对于当前纪录位置的某一行,可使用updateXXX方法对指定字段进行更新使用updateRow()方法将修改发送到数据库,特殊记录集,对于可更新结果集使用的查询的限制:只能使用一个表必须选择这个表的主键和所有其他NOTNULL列不能使用ORDERBY子句必须只选择列值,不能包含计算列不能使用SELECT*。你必须分别指定列,或者使用表别名,如SELECTcustomers.*fromcustomers,特殊处理,处理数据库中的null值,Stringname=rs.getString(2);name=name.toUpperCase();,如果name获得的是null值,则第二句调用方法时出现异常。ResultSet的wasNull()方法可以检测上一个获取的字段值是否为空,Stringname=rs.getString(2);if(rs.wasNull()name=;name=name.toUpperCase();,处理异常,当数据库或JDBC驱动程序中发生错误时,将抛出一个java.sql.SQLExceptionSQLException类是Exception类的子类必须使用trycatch对该异常进行处理SQLException类定义了2个方法,它们有助于查找造成异常的原因getErrorCode()返回错误编号getMessage()返回错误消息,处理异常,捕获并处理SQLException,try/在tiger中多加一个gcon=DriverManager.getConnection(url,scott,tigger);catch(SQLExceptione)if(e.getErrorCode()=1017)System.out.println(登录用户名/密码错误);elseSystem.out.println(e.getMessage();,更多信息,JDBCAPI的主要接口包括Connection、S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 橡胶厂成型机安全操作规章
- 五年级数学(小数乘法)计算题专项练习及答案汇编
- 2025西安市莲湖第一中学、莲湖第二学校招聘考试模拟试题及答案解析
- 2025山东德州平原县中等职业专业学校教师招聘10人备考考试试题及答案解析
- 2025云南红河州绿春县紧密型县域医疗卫生共同体总医院选调人员7人备考考试试题及答案解析
- 2025年合肥长丰县北城世纪城第一小学临聘教师公开招聘33名备考考试试题及答案解析
- 2025海南省机电工程学校招聘事业编制人员(第二批)14人(第1号)考试参考题库及答案解析
- 2025内蒙古赤峰市阿鲁科尔沁旗国资集团下属利民公司招聘工作人员10人备考模拟试题及答案解析
- 2025重庆市公路客运联网售票中心有限公司公开招聘4人备考练习题库及答案解析
- 2025年甘肃省天水市事业单位招聘(270人)考试参考题库及答案解析
- 《财务管理学(第10版)》课件 第1、2章 总论、财务管理的价值观念
- GB/T 43934-2024煤矿土地复垦与生态修复技术规范
- 高流量湿化仪的使用技术操作及评分标准
- 中华全国总工会办公厅印发《加快工会数字化建设工作方案》
- 精神病人吞食异物的护理
- 透析液质量控制方案
- 2024年危险化学品生产单位主要负责人考试题及答案
- QC七大手法及品质8D方法
- 病原生物学与免疫学(高职)全套教学课件
- 有时候有时候造句
- 洗浴中心项目运营方案
评论
0/150
提交评论