`
百合不是茶
  • 浏览: 344681 次
社区版块
存档分类
最新评论

JDBC中事务处理应用

阅读更多

 

解释事务的概念; 事务控制是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();				
	 }
	}
}

 

//输出结果;一行受影响

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    Sharding-JDBC分布式事务应用

    Sharding-JDBC分布式事务应用

    你不知道的JDBC高级应用

    6.结果集:在JAVA中完全可以把结果集当作游标来处理,获得Statement可以添加的参数. 7.事务:设定事务的保存点,可以把事务隔离. crud c:create r:read u:update d:delete JTA 分布式事务 跨数据库的事务 JNDI TomCat ...

    JDBC 3.0数据库开发与设计

    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 高级数据类型 ...

    IRIS数据平台:一款针对事务/分析型应用程序的新型数据平台-2020.pdf

    •高性能,具备并行的事务处理和分析处理能力,支持实时处理用例。 •支持实时执行机器学习、业务规则、自然语言处理、商业智能及SQL查询。 •具有完整的互操作性平台,能将已有的应用程序和数据源相互集成。 •可...

    ultm:JDBC超轻量级事务管理器

    每当需要JDBC但又不想手动处理事务并且不想使用JavaEE或Spring等复杂环境时,都可以使用它。 ULTM就是几行代码,没有外部依赖性。 当您创建一个小型应用程序或通过微服务构建复杂的应用程序时,它是理想的选择。 ...

    基于java的企业级应用开发:Spring Jdbc.ppt

    Spring JDBC Spring的JDBC模块负责数据库资源管理和错误处理,大大简化了开发人员对数据库的操作,使得开发人员可以从繁琐的数据库操作中解脱出来,从而将更多的精力投入到编写业务逻辑当中。 Spring JdbcTemplate...

    JDBC ppt

    自己讲课时用的,很不错。包括内容有: 1、JDBC介绍 2、JDBC应用程序开发步骤 3、元数据与异常 4、事务处理 5、JDBC相关内容

    jdbc连接数据库的方式2

    如果使用这种方式,不但Java应用程序可以使用应用软件的对象模式,其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。  10、利用SQL完成数据库内的操作  我要向大家介绍的最重要的...

    JAVA设计模式之事务处理.pdf

    事务处理是企业应用需要解决的最主要的问题之一。J2EE通过JTA提供了完整的事务管理能力,包括多个事务性资 源的管理能力。但是大部分应用都是运行在单一的事务性资源之上(一个数据库),他们并不需要全局性的事务...

    纯JSP-JDBC开发Web程序

    2.用特殊的回调机制进行JDBC封装,以致不用每次的JDBC访问都要进行数据库连接和关闭,支持数据库的CURD和事务处理; 3.具有错误日志、数据库连接池、JQuery调用、分页处理等功能,能够有效减少代码量。

    基于JDBC的数据库连接池技术研究与应用

    1、并发问题 2、多数据库服务器和多用户 3、事务处理 4、连接池的分配与释放 5、连接池的配置与维护 连接池模型

    JDBC连接池(转发)

    本文介绍了基于JDBC的数据库连接池的工作原理,阐述了连接池技术的事务处理、多数据库服务器等各项关键技术,提出了一个高效的连接池管理策略,最后详细说明了数据库连接池应用的具体实现过程。 我觉得很有启发,...

    达梦数据库8,DM8,jdbc驱动

    融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,...

    kingbaseV8 jdbc 驱动 kingbase8-8.2.0.jar

    Java版本 人大金仓ESV8最新版驱动程序,学习使用国产化数据库操作。 金仓通用数据库,可视化操作,毫秒级数据处理,高效准确完成数据处理全...面向事务处理类、兼顾分析类应用领域场景,兼容Oracle、国产数据库等多平台。

    尚硅谷_佟刚_JDBC.pptx

    4. 以面向对象的思想编写 JDBC 应用程序(视频5-6) 5. 使用 PreparedStatement(视频7) 6. 利用反射及 JDBC 元数据编写通用的查询方法(视频8-9) 7. DAO 设计模式(视频10-12) 8. JDBC 元数据(视频13) 9. 获取插入记录...

    Java Transaction API概述

    JTA(Java Transaction API)允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。本文的目的是要提供一个关于的Java事务处理API(JTA)...

    jdbc基础和参考

    JDBC:本身自动帮我做事务管理的操作 AutoCommit = true; Connection.setAutoCommit(false); 正常: conn.commit(); 异常: conn.rollback(); JDBC批处理: addBatch executeBatch Statement ...

    Spring3.x企业应用开发实战(完整版) part1

    13.6 实际应用中的任务调度 13.6.1 如何产生任务 13.6.2 任务调度对应用程序集群的影响 13.6.3 任务调度云 13.6.4 Web应用程序中调度器的启动和关闭问题 13.7 小结 第14章 使用OXM进行对象XML映射 14.1 认识XML解析...

    Spring+3.x企业应用开发实战光盘源码(全)

     第10章:对实际应用中Spring事务管理各种疑难问题进行透彻的剖析,让读者对Spring事务管理不再有云遮雾罩的感觉。  第11章:讲解了如何使用Spring JDBC进行数据访问操作,我们还重点讲述了LOB字段处理、主键产生...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    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 容器...

Global site tag (gtag.js) - Google Analytics