- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
11.JDBC数据库操作
PreparedStatement sqlPS=con.prepareStatement(String sql); 对SQL语句进行预编译,生成数据库底层的内部命令,并将命令封装在PreparedStatement对象中; sqlPS.executeQuery(); 直接使用内部命令访问数据库。 目的:提高数据库访问速度。 Java技术及其应用 例题 Example11_8 Java技术及其应用 预处理通配符 sqlPS=con.prepareStatement(String sql); sqlPS.setFloat(1,30.89); Java技术及其应用 例题 Example11_9 Java技术及其应用 事务 事务由一组SQL语句组成,所谓事务处理是指:应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行 Java技术及其应用 JDBC事务处理步骤 和数据库建立一个连接对象后,比如con。那么con的提交模式是自动提交模式,即该连接对象con产生的Statement(PreparedStatement对象)对数据库提交任何一个SQL语句操作都会立刻生效,使得数据库中的数据发生变化,这显然不能满足事物处理的要求。 为了能进行事务处理,必须关闭con的这个默认设置。 con对象首先调用setAutoCommit(boolean autoCommit)方法,将参数autoCommit取值false来关闭默认设置: con.setAutoCommit(false); 2.使用commit()方法 con调用setAutoCommit(false)后,con产生的Statement对象对数据库提交任何一个SQL语句操作都不会立刻生效,这样一来,就有机会让Statement对象(PreparedStatement对象)提交多个SQL语句,这些SQL语句就是一个事务。事务中的SQL语句不会立刻生效,直到连接对象con调用commit()方法。con调用commit()方法就是让事务中的SQL语句全部生效。 3.使用rollback()方法 con调用commit()方法进行事务处理时,只要事务中任何一个SQL语句没有生效,就抛出SQLException异常。在处理SQLException异常时,必须让con调用rollback()方法,其作用是:撤消事务中成功执行过的SQL语句对数据库数据所做的更新、插入或删除操作,即撤消引起数据发生变化的SQL语句操作,将数据库中的数据恢复到commi()方法执行之前的状态。 Example11_10 Java技术及其应用 批处理 JDBC为Statement对象提供了批处理功能,即Statement对象调用executeBatch()方法可以一次执行多个SQL语句,只要事先让Statement对象调用addBatch(String sql)方法将要执行的SQL语句添加到该对象中即可。 在对若干个SQL进行批处理时,如果不允许批处理中的任何SQL语句执行失败,那么和前面讲解处理事务的情况相同,要事先关闭连接对象的自动提交模式,即将批处理作为一个事务来对待,否则批处理中成功执行的SQL语句将立刻生效。 例题 Example11_11 Java技术及其应用 CachedRowSetImpl类 JDBC使用ResultSet对象处理SQL语句从数据库表中查询的记录,需要特别注意的是,ResultSet对象和数据库连接对象(Connnection对象)实现了紧密的绑定,一旦连接对象被关闭,ResultSet对象中的数据立刻消失 应用程序在使用ResultSet对象中的数据时,就必须始终保持和数据库的连接,直到应用程序将ResultSet对象中的数据查看完毕。 如果在代码 rs=sql.executeQuery(SELECT * FROM goods WHERE price3000); 之后立刻关闭连接: con.close(); 那么输出结果集中的数据的代码: while(rs.next()){ … … } 就无法执行。 com.sun.rowset包提供了CachedRowSetImpl类,该类实现了CachedRowSet接口。CachedRowSetImpl对象可以保存ResultSet对象中的数据,而且CachedRowSetImpl对象不依赖Connnection对象,这意味着一旦把ResultSet对象中的数据保存到CachedRowSetImpl对象中后,就可以关闭和数据库的连接。CachedRowSetImpl继承了ResultSet的所有方法,因此可以像操作ResultSet对象一样来操作CachedRowSetImpl对象。将ResultSet对象rs中的数
原创力文档


文档评论(0)