14 Java与数据库研究.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PreparedStatement statement 发送完整的 Sql 语句到数据库;PreparedStatement由数据库先编译,再运行。 PreparedStatement 先发送带参数的 Sql 语句,再发送一组参数值。如果是同构的 sql语句,PreparedStatement 的效率要比 statement 高。而对于异构的 sql 则两者效率差不多。 同构:两个 Sql 语句可编译部分相同,只有参数值不同。 异构:整个 sql 语句的格式是不同的 PreparedStatement 注意点: 使用预编译的 Statement 编译多条 Sql 语句一次执行 可以跨数据库使用,编写通用程序 能用预编译时尽量用预编译 CallableStatement 存储过程的调用 存储过程是一种特殊的 SQL 语句,放在数据库中,把复杂的查询与客户端隔离,只给客户提供必要查询接口。使用存储过程性能好,在服务器上执行,离数据最接近,比直接发送 SQL 语句速度要快得多。 存储过程的好处 存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。 一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。 通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。 CallableStatement DELIMITER // CREATE DEFINER=`root`@`localhost` PROCEDURE test_procedure() BEGIN INSERT INTO student(sno,sname,age)VALUES(201407098011,测试,21); end // DELIMITER ; call stu.test_procedure(); // 创造调用存储过程的SQL String sql = {CALL test_procedure()}; // 执行调用存储过程的SQL语句 stmt = conn.prepareCall(sql); stmt.execute(sql); 3.2 JDBC批处理 当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。 JDBC批处理 事务处理:底层是在数据库方存储 SQL(没有提交事务的数据放在数据库的临时表空间) ,最后一次把临时表空间的数据提交到数据库服务器执行 (消耗数据库服务器内存) SQL批处理:底层是在客户端存储 SQL,最后一次把客户端存储的数据发送到数据库服务器执行。 (消耗客户端的内存) 。 在MySQL中,事务开始使用COMMIT或ROLLBACK语句开始工作和结束。 开始和结束语句的SQL命令之间形成了大量事务。 COMMIT ROLLBACK:? 这两个关键字提交和回滚主要用于MySQL的事务。 当一个成功的事务完成后,发出COMMIT命令应使所有参与表的更改才会生效。 如果发生故障时,应发出一个ROLLBACK命令返回的事务中引用的每一个表到以前的状态 3.3 JDBC事务处理 事务的特性 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。 一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。 隔离性(isolation):一个事务的执行不能被其他事务所影响。 持久性(durability):一个事务一旦提交,事物的操作便永久性的保存在DB中。即使此时再执行回滚操作也不能撤消所做的更改。 JDBC事务处理 事务并发处理可能引起的问题 脏读(dirty read) 一个事务读取了另一个事务尚未提交的数据 不可重复读(non-repeatable read) 一个事务的操作导致另一个事务前后两次读取到不同的数据 幻读(phantom read) 一个事务的操作导致另一个事务前后两次查询的结果数据量不同。 JDBC事务处理 JDBC对事务的支持体现在三个方面 自动提交模式(Auto-commit mode):Connection提供了一个auto-commit的属性来指定事务何时结束。 事务隔离级别(Transaction Isolation Levels) 保存点(SavePoint):JDBC定义了SavePoint接口,提供在一个更细粒度的事务控制机制。当设置了一个保存点后,可以rollback到该保存点处的状态,而不是rollback整个事务。Connection接口的set

文档评论(0)

1112111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档