第14篇 JDBC的应用.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第14章 JDBC应用;14.1 事务概述;原子操作,也就是不可分割的操作,必须一起成功一起失败。 对数据库进行并发操作时,为了避免由于并发操作带来的问题,一般要将同一个任务中对数据库的增、删、改、查操作编写到一个事务中,同一个事务中的所有操作要么全部执行成功,要么全部不执行。 JDBC提供了对事务开发的支持。关于事务操作的方法都位于接口java.sql.Connection中。; 在JDBC数据库操作中,一项事务是由一条或多条表达式所组成的一个不可分割的工作单元。我们通过提交commit()或是回滚rollback()来结束事务的操作。 事务操作缺省是自动提交。一条SQL语句代表一个事务操作,操作成功后,系统将自动调用commit()来提交,否则将调用rollback()来回滚。 ;import java.sql.*; public class JDBCDemo0 { public static void main(String[] args) { Connection con; try { Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver) .newInstance(); con = DriverManager.getConnection( jdbc:sqlserver://:1433;DatabaseName=jxgl, sa, 811103); System.err.println(连接成功); if (con.getAutoCommit() == true) { System.out.println(Auto Commit Mode); } else { System.out.println(Not Auto Commit Mode); } con.close(); } catch (Exception e) { e.printStackTrace(); } } };在JDBC中,可以通过调用setAutoCommit(false)来禁止自动提交。之后就可以把多个数据库操作的表达式作为一个事务,在操作完成后调用commit()来进行整体提交,倘若其中一个表达式操作失败,都不会执行到commit(),并且将产生相应的异常;此时就可以在异常捕获时调用rollback()进行回滚。这样做可以保持多次更新操作后,相关数据的一致性。 ;1、设置自动提交 conn.setAutoCommit(true); 2、设置不自动提交 conn.setAutoCommit(false); 3、提交数据 mit(); 4、回滚数据 conn.rollback();;JDBC中,一般在编写事务时按照如下步骤进行: 1、首选调用setAutoCommit方法禁止自动提交模式,这样多个SQL语句才能处于同一个事务中; 2、然后可以使用Statement 或PreparedStatement 依次执行事务中的SQL语句; 3、当执行完事务中所有的SQL语句后,调用 commit 方法将此事务提交; 4、如果执行过程中出现问题,应该调用 rollback 方法将事务回滚。;事务处理步骤:;注意: JDBC事务的支持是依赖于所连接的数据库的,如果连接的数据库本身不支持事务,即使正常编写了事务的代码也没有意义,例如,access? 等都不支持事务 。;14.2 JDBC事务并发产生的问题;不可重复读(unrepeatable read):当一个事务在读取某一数据行时,另一事务同时在修改此数据行。则前一事务在重复读取此行时将得到一个不一致的值。 例子:假设A在取款事务的过程中,B往该账户转账了100元,A两次读取账户的余额发生了不一致。 幻象读(phantom read):当一个事务在某一表中进行数据查询时,另一事务恰好插入了满足了查询条件的数据行。则前一事务在重复读取满足条件的值时,将得到一个额外的“影象”值。 例子:银行系统在同一个事务中,两次统计存款账户的总金额,在两次统计过程中,刚好新增了一个存款账户,并存入100元,这时,两次统计的总金额将不一致。 ; 在通过JDBC对数据库进行事务并发访问时,为了解决事务并发之间的锁的控制,JDBC提供了一个隔离级别(Isolation)的方式解决

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档