欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    【教学课件】第12章JDBCAPI程序设计.ppt

    • 资源ID:5657790       资源大小:368.97KB        全文页数:28页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【教学课件】第12章JDBCAPI程序设计.ppt

    第12章 JDBC API程序设计,本章简介,本章介绍java.sql包中提供的主要类与接口,它们是JDBC程序的基本构件,是编写JDBC应用程序的基础。本章的每一个示例都基于JSP页面与Oracle9i数据库,并且全部在Oracle9i JDeveloper环境下创建、部署、执行通过。,12.1 Connection接口,12.2 Statement接口,一旦拥有数据库连接,就可以与数据库产生交互作用。对象,或者它的子类或者,可以处理这种交互作用。Statement对象用于给数据库发送SQL语句。然而,由于是接口,所以不能直接实例化实例。通过使用Connection对象的createStatement()方法,可得到Statement对象。,示例,Connection conn=null;InitialContext ic=new InitialContext();DataSource ds=(DataSource)ic.lookup(jdbc/JDBCConnectionCoreDS);conn=ds.getConnection();Statement st=conn.createStatement();Statement stmt=conn.createStatement();,表12.2 Statement接口的方法,示例,例如,下面的代码片段说明了如何执行一个数据表查询操作:String sql=select*from userinfo;ResultSet rs=statement.executeQuery(sql);例如,下面的代码片段说明了如何执行数据插入操作:String sql=insert into userinfo values(7107,宋晓一,123789,);int rowCount=statement.executeUpdate(sql);,示例说明:上述源程序中在trycatchfinally语句块中包装了代码。这是因为每个JDBC方法调用都有可能导致产生SQLException异常,所以,需要捕捉错误,输出适当的消息,同时把错误代码返回给调用者。使用finally语句块是为了确保关闭和执行Connection对象,而不管是否产生了SQLException异常。,12.3 ResultSet接口,Statement接口的方法executeQuery()采用String变元,返回对象。传入的变元应该是有效的SQL查询。例如,下面的代码片段:String sql=select*from userinfo where code=7102;ResultSet rs=statement.executeQuery(sql);例如,下面的代码片段:String sql=select*from userinfo where code=7102;ResultSet rs=statement.executeQuery(sql);while(rs.next()/process the row,表12.3 ResultSet接口的方法,表12.4 ResultSet接口的方法,示例,例如,对于下面的查询(可参阅第11章的实例):ResultSet rs=statement.executeQuery(select code,name from userinfo);可以按照名称返回列:while(rs.next()String code=rs.getString(code);String name=rs.getString(name);或者按照位置返回列:while(rs.next()String code=rs.getString(1);String name=rs.getString(2);,1记录集的元数据,例如,下面的代码片段:ResultSet rs=statement.executeQuery(select*from userinfo);ResultSetMetaData rsmd=rs.getMetaData();例如,下面的代码片段:for(int i=1;i=rsmd.getColumnCount();i+)System.out.print(Column name=+rsmd.getColumnName(i);System.out.print(Type=+rsmd.getColumnTypeName(i);System.out.print(Java type=+rsmd.getColumnType(i);,示例说明:第28句使用常量名称与数据表的列的Java类型比较,根据返回值的真或假来判断是否为日期或时间类型。ResultSet接口提供了getDate()、getTime()和getTimestamp()方法分别返回Date、Time和Timestamp类型的对象。在Oracle数据库中,如果ResultSet对象中返回当前SYSDATE:ResultSet rs=st.executeQuery(select sysdate from dual);如果使用getDate()方法,将得不到时间部分;如果使用getTime()方法,将得不到日期部分;同时返回时间和日期的方法是使用getTimestamp()方法。,2可被更新和滚动的记录集,创建Statement对象实例:Statement st=connection.createStatement(int 指针类型参数,int 数据一致性参数);其中,指针类型参数见表12.5,数据一致性参数见表12.6。将这两个参数有机地组合起来,就可以ResultSet对象的滚动和更新操作。,表12.5 指针类型参数,表12.6 指针类型参数,示例,下面的语句将从Statement对象创建的ResultSet对象设定为将即可以滚动,又可以更新:Statement st=connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);,示例,创建Statement对象之后,现在可以创建允许更新的ResultSet对象。Oracle规定,不能为可更新的记录集使用SELECT*语法,但可通过使用表的别名来解决这个问题:ResultSet rs=st.executeQuery(select n.*from userinfo n);根据数据类型,使用ResultSet的updateXXX()方法更新列的值,接着使用updateRow()方法实际更新数据库。while(rs.next()rs.updateString(,);rs.updateRow();,示例,为了插入新行,必须使用moveToInsertRow()方法滚动,该方法使我们处在准备接受新值的空行上:rs.moveToInsertRow();现在,可以调用insertRow()方法,把上述数据插入到数据库中。接着需要调用moveToCurrentRow()方法,使我们返回到原来结果集中正在处理的位置:rs.insertRow();rs.moveToCurrentRow();,12.4 PreparedStatement接口,PreparedStatement接口是Statement接口的扩展,代表了一条已编译的SQL语句。已编译语句的含义是:SQL语句传送给RDBMS,在这里被编译、优化与缓存。因为语句不需要在每次执行时由数据库编译与优化,所以语句重复执行的整体性能被大大提高了。,示例,例如,对于下面的查询字符串:String sql=SELECT*FROM userinfo WHERE name=?;查询字符串中的“?”用于每个输入参数的占位符。这些占位符对应于数据库中的变量,称为绑定变量。使用绑定变量的查询将被编译一次,随后把查询计划存储在共享池中,可以从中检索和重用它。,创建一个PreparedStatement对象可以使用Connection对象的prepareStatement()方法,如果Connection对象为conn,则创建PreparedStatement对象prepare的语句为:PreparedStatement prepare=conn.prepareStatement(sql);这样在PreparedStatement对象创建的同时,就将带有参数的SQL语句作为参数传递给了它。,表12.7 PreparedStatement接口的方法,示例说明:第2122句将要更新的数据先放到数组中,第23句执行具有参数的SQL语句,进行更新数据操作。其中SQL语句“UPDATE course SET name=?WHERE code=?”内每个列的值并没有确定,而是以“?”来表示,程序必须在执行这个SQL语句之前确定“?”位置的值。第2428句确定每个“?”所代表参数的值。需要注意的是,为了能够执行带有参数的SQL语句,必须使用PreparedStatement对象。第30句创建一个Statement对象。第31句返回一个ResultSet对象,代表执行SQL语句后所得到的记录集。再用ResultSet对象的next()方法将返回记录集一个一个地取出并显示出来,直到next()方法返回false为止。,12.5 CallableStatement接口,CallableStatement接口是PreparedStatement的子接口,它同时拥有PreparedStatement及其超接口Statement的所有功能。它允许在数据库上调用PL/SQL代码,即匿名块或存储过程和函数,从而添加从它们接受输出参数的能力。,12.6 DatabaseMetaData接口,12.7 本章小结,JDBC为访问关系型与对象关系型数据库提供了可移植、灵活基本方法,是一种功能很强的技术。数据库访问的基本元素包含在JDBC 2.0中,封装在java.sql包中。而Optional Package是一个扩展,它的接口与类封装在javax.sql包中,它保存了更特殊的数据访问功能。OC4J充分利用了JDBC 2.0提供的DataSource接口等最新特性,在利用JDBC API连接Oracle9i数据库方面提供了更简单、功能更加强大的方法。,

    注意事项

    本文(【教学课件】第12章JDBCAPI程序设计.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开