解释事务的概念; 事务控制是sql语句中的核心之一;事务控制的作用就是保证数据的正常执行与异常之后可以恢复
事务常用命令:
Commit提交
rollback;回滚
savepoint;保存点
例如在实际开发中我们会处理很多的数据,但是一旦提交数据将无法修改,这时会出现灾难性的事件;因此事务控制就显得格外的重要与特别
a),rollback还原为厨师数据,将sal改成1200
update emp set sal=1200 where ename='SMITH
此时我发现不想改sal的数,如果没commit还可以还原
rollback;
rollback是每次都还原原始数据800
b),savepoint保存点和commit的使用
1 ,将sal改为800
update emp set sal=800 where ename='SMITH
2 ,将sal改为500 并设置savepoint a1
update emp set sal=800 where ename='SMITH
3,将sal改为1500 并设置savepoint a2
update emp set sal=800 where ename='SMITH
4,还原a2
rollback to a2;
通过设置savepoint可以还原到我们需要的数据地点
事物;是为了保证对数据操作的一致性和统一性
commit;提交事物,将数据更新到数据库中去,一旦事物被提交就无法还原
rollback 回滚 还原到上一次提交事物时的状态
savepoint a1 创建一个还原点,a1是还原点的名称,rollback to a1;还原到a1的保存点
一旦提交事物所有的保存点都失效
在执行退出命令的时候会自动的先提交事物
jdbc中一旦执行数据编译自动提交
JDBC中事务的应用;保证数据的一致性
如下代码;没有加入事务的概念,数据会出错并且不能回复
package 数据库操作; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * * @author Administrator */ public class OracleDemo { public static void main(String[] args) { Connection conn; try { //1.加载数据驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); //2.定义字符串 String url ="jdbc:oracle:thin:@127.0.0.1:1521:orcl"; //3,链接数据库 conn = DriverManager.getConnection(url, "scott", "tiger"); //4,创建数据操作对象 Statement stm = conn.createStatement(); //5,更新需要的数据 String sql = "Update emp set sal = 800 where ename ='SMITH'"; //两行错的 String str = "abds"; int len = Integer.parseInt(str); int num =stm.executeUpdate(sql); System.out.println(len); System.out.println("有"+num+"行受影响"); }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
//编译出错,但是sql语句已经执行,commit已经提交
怎么设置出错时commit不自动的提交
package 数据库操作; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * java连接JDBC的事物控制联系 * @author Administrator *roolback ,commit,savepoint 事物控制 */ public class OracleDemo { public static void main(String[] args) { Connection conn; try { //1.加载数据驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); //2.定义字符串 String url ="jdbc:oracle:thin:@127.0.0.1:1521:orcl"; //3,链接数据库 conn = DriverManager.getConnection(url, "scott", "tiger"); //4,创建数据操作对象 Statement stm = conn.createStatement(); try{ //设置禁止自动提交 conn.setAutoCommit(false); //5,更新需要的数据 String sql = "Update emp set sal = 800 where ename ='SMITH'"; String str = "abds"; int len = Integer.parseInt(str); int num =stm.executeUpdate(sql); System.out.println(len); System.out.println("有"+num+"行受影响"); //执行完毕后再提交 conn.commit(); } catch (Exception e) { conn.rollback(); System.out.println("执行了回滚的操作..........."); e.printStackTrace(); } }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
//输出结果;一行受影响
相关推荐
Sharding-JDBC分布式事务应用
6.结果集:在JAVA中完全可以把结果集当作游标来处理,获得Statement可以添加的参数. 7.事务:设定事务的保存点,可以把事务隔离. crud c:create r:read u:update d:delete JTA 分布式事务 跨数据库的事务 JNDI TomCat ...
4.8 分布式事务处理 4.8.1 XADataSource接口和XAConnection接口 4.8.2 事务管理器 4.8.3 关闭连接 4.9 例外处理 4.9.1 数据访问警告(SQLWarning) 4.9.2 数据截断(DataTruncation) 4.10 高级数据类型 ...
•高性能,具备并行的事务处理和分析处理能力,支持实时处理用例。 •支持实时执行机器学习、业务规则、自然语言处理、商业智能及SQL查询。 •具有完整的互操作性平台,能将已有的应用程序和数据源相互集成。 •可...
每当需要JDBC但又不想手动处理事务并且不想使用JavaEE或Spring等复杂环境时,都可以使用它。 ULTM就是几行代码,没有外部依赖性。 当您创建一个小型应用程序或通过微服务构建复杂的应用程序时,它是理想的选择。 ...
Spring JDBC Spring的JDBC模块负责数据库资源管理和错误处理,大大简化了开发人员对数据库的操作,使得开发人员可以从繁琐的数据库操作中解脱出来,从而将更多的精力投入到编写业务逻辑当中。 Spring JdbcTemplate...
自己讲课时用的,很不错。包括内容有: 1、JDBC介绍 2、JDBC应用程序开发步骤 3、元数据与异常 4、事务处理 5、JDBC相关内容
如果使用这种方式,不但Java应用程序可以使用应用软件的对象模式,其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。 10、利用SQL完成数据库内的操作 我要向大家介绍的最重要的...
事务处理是企业应用需要解决的最主要的问题之一。J2EE通过JTA提供了完整的事务管理能力,包括多个事务性资 源的管理能力。但是大部分应用都是运行在单一的事务性资源之上(一个数据库),他们并不需要全局性的事务...
2.用特殊的回调机制进行JDBC封装,以致不用每次的JDBC访问都要进行数据库连接和关闭,支持数据库的CURD和事务处理; 3.具有错误日志、数据库连接池、JQuery调用、分页处理等功能,能够有效减少代码量。
1、并发问题 2、多数据库服务器和多用户 3、事务处理 4、连接池的分配与释放 5、连接池的配置与维护 连接池模型
本文介绍了基于JDBC的数据库连接池的工作原理,阐述了连接池技术的事务处理、多数据库服务器等各项关键技术,提出了一个高效的连接池管理策略,最后详细说明了数据库连接池应用的具体实现过程。 我觉得很有启发,...
融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,...
Java版本 人大金仓ESV8最新版驱动程序,学习使用国产化数据库操作。 金仓通用数据库,可视化操作,毫秒级数据处理,高效准确完成数据处理全...面向事务处理类、兼顾分析类应用领域场景,兼容Oracle、国产数据库等多平台。
4. 以面向对象的思想编写 JDBC 应用程序(视频5-6) 5. 使用 PreparedStatement(视频7) 6. 利用反射及 JDBC 元数据编写通用的查询方法(视频8-9) 7. DAO 设计模式(视频10-12) 8. JDBC 元数据(视频13) 9. 获取插入记录...
JTA(Java Transaction API)允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。本文的目的是要提供一个关于的Java事务处理API(JTA)...
JDBC:本身自动帮我做事务管理的操作 AutoCommit = true; Connection.setAutoCommit(false); 正常: conn.commit(); 异常: conn.rollback(); JDBC批处理: addBatch executeBatch Statement ...
13.6 实际应用中的任务调度 13.6.1 如何产生任务 13.6.2 任务调度对应用程序集群的影响 13.6.3 任务调度云 13.6.4 Web应用程序中调度器的启动和关闭问题 13.7 小结 第14章 使用OXM进行对象XML映射 14.1 认识XML解析...
第10章:对实际应用中Spring事务管理各种疑难问题进行透彻的剖析,让读者对Spring事务管理不再有云遮雾罩的感觉。 第11章:讲解了如何使用Spring JDBC进行数据访问操作,我们还重点讲述了LOB字段处理、主键产生...
4.2.2 分布式事务处理、XA规范和 2PC协议 192 4.2.3 使用JTA全局事务保证多 数据库的一致性 193 4.3 事务隔离、传播属性的设置 198 4.3.1 并发访问和隔离 198 4.3.2 事务属性 199 4.4 EJB的事务管理 201 4.4.1 容器...