浅谈JDBC的概念理解与学习.docVIP

  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文档。上传文档
查看更多
浅谈JDBC的概念理解与学习

JDBC的概念:工厂一般使用单例模式 工厂--生产产品(Dao这个产品) 类加载器,不光可以load.class,还可以load其他的文件 事务概念与处理 1.原子性:不能拆分,组成事事务处理的语句形成一个逻辑处理单元,不能只执行其中的一部分 2.一致性:事务做完之后,保定数据的完整性约束 3.隔离性:一个事务处理对另一个事务处理的影响 4.持续性:事务处理的结果能被永久保存下来 步骤:打开事务connection.setAutoCommit(false); 提交事务:mit(); 回滚事务:connection.rollback(); jdbc缺省是自动提交的,客户端连接也是自动提交的,要想打开事务,要把自动提交关掉 保存点:savePoint Savepoint sp=null sp=conn.setSavepoint(); conn.rollback(sp); ----------------------------------- JDBC的概念:跨多个数据库的事务JTA JTA容器weblogic,websphere 分成两阶段提交。 用到JNDI服务器 javax.transaction.UserTransactiontx= (UserTransaction)ctx.lookup(jndiName); tx.begin(); //connection1connection2(可能来自不同的数据库) mit(); //tx.rollback(); --------------------------------- 事务的隔离级别: connction.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); 隔离级别 读未提交(Readuncommitted)可能出现脏读,不可重复读,幻读 读已提交(Readcommitted)可能出现不可重复读,幻读 可重复读(Repeatableread)可能出现幻读(幻影数据,执行插入一条数据,在另一个客户端有可能看到) 可串行化(Serializable) 隔离级别各个数据库的实现是不一样的。 -------------------------------------------------- 关于存储过程(两层架构的时候用的很多) 三层架构的系统很少使用了。略过不看了先。 --------------------------------------------------- 其他几个有用的API jdbc3.0规范提供的方法 插一条记录,它能把主键返回来 PreparedStatement.getGeneratedKeys(); PreparedStatementps=connection.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); ps.executeUpdate(); ResultSetrs=st.getGeneratedKeys(); rs.getInt(1); 批量处理:可以大幅提升大量增删改的速度(并非绝对),与具体数据库有关,也不一定能提高性能 PreparedStatement.addBatch(); PreparedStatement.executeBatch(); ------------------------------------------------------------- 可滚动结果集与分页特性 Statementst=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet.TYPE_SCROLL_SENSITIVE--对数据库敏感的,就是说,数据库中记录发生了变化,结果集会觉察到(但某些数据库不一定遵循这一规范,mysql就不遵循) ResultSet.CONCUR_UPDATABLE--可更新的,就是说,改变结果集中的内容可以影响到数据库里 ResultSet.CONCUR_READ_ONLY--只读的, 可滚动的结果集 Statementst=connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSetrs=st.execute

文档评论(0)

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

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

1亿VIP精品文档

相关文档