`
fansfirst2008
  • 浏览: 98574 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

从tomcat 的数据源组件获得连接,自动管理事务回滚

阅读更多

背景:java代码事务处理中,事务属性设置为手动提交,但是居然没有发现事务回滚,只有提交动作!服务器为tomcat,配置数据源为oracle!

 

疑问有二:1.如果一个事务调用oarcle存储过程正常,但是java代码有抛出异常,此代码能否自动回滚?

             2.如果一个事务中调用两次存储过程,第一个无误,第二个plsql代码有误,那么这个事务能否回滚?

 

针对这两个疑问,我手动写了些测试用例,但是是直接连接数据库的!

事实证明:如果没有回滚动作,那么事务是不正常执行的!

于是推理出,那些没有回滚的java代码是不严谨的!

 

但是当选用tomcat配置数据源获得连接时,似乎是没有事务异常,与之前的结论不符!

难道tomcat可以针对抛出异常的代码,会自动回滚事务?因为没有底层代码,所以这是有可能的!

 

但是当我不关闭数据库连接时,因为抛出异常,没有正常提交时,数据库肯定不会自动回滚的!

于是猜测:tomcat数据源获得的连接,close()函数并没有直接关闭数据库连接,而只是把它放到连接池中!

而且不会有提交这个动作!

 

这个是否是与close函数不符的地方呢?

 

 

分享到:
评论

相关推荐

    详细介绍在tomcat中配置数据源原理

    Tomcat 中配置数据源原理详解 在本文中,我们将详细介绍在 Tomcat 中配置数据源的原理。数据源是指Java应用程序连接数据库的接口,通过配置数据源,我们可以在 Java 应用程序中访问数据库。 首先, let's talk ...

    jdbc 简介 如何在tomcat 中配置数据源

    ### JDBC与Tomcat数据源配置详解 #### 一、引言 在现代Web应用程序开发中,数据库连接管理和数据访问操作是非常关键的一部分。JDBC(Java Database Connectivity)作为Java平台的标准数据库访问技术,使得开发者...

    ssm框架集成多数据源源码

    - 数据源的切换需要在事务开始之前完成,否则可能导致事务无法正常提交或回滚。 - 考虑性能问题,尽量减少不必要的数据源切换,避免增加系统复杂性和潜在的问题。 8. **群组交流**: 提供的描述中提到“不懂可加...

    数据源所需jar.rar

    在Java EE(企业版Java)开发中,数据源(DataSource)是连接数据库的关键组件,它管理着数据库连接的创建、分配和回收。本压缩包"数据源所需jar.rar"很可能包含了一些必要的Java库,这些库使得开发者能够在应用程序...

    Spring 学习系列 -- Spring + Mybatis 从零开始配置多数据源访问

    - 使用`@Qualifier`注解来指定在哪个数据源上执行事务操作,以便在代码中选择正确的数据源。 3. **Mybatis集成** - 配置Mybatis的SqlSessionFactory,需要为每个数据源创建一个。使用`Mybatis...

    如何在spring中等价配置得到原本由jndi配置实现的数据源

    通常,在Web应用程序中,数据源常常通过Java Naming and Directory Interface (JNDI)进行管理,这允许多个应用共享同一个数据源,例如在应用服务器如Tomcat、JBoss或WebLogic中。然而,有时我们可能希望在非Web环境...

    java事务管理和事务分类

    应用服务器通常会提供对JTA的支持,并且通过JNDI查找数据源来获取连接。JTA事务由`UserTransaction`接口管理,而不是直接在`Connection`上进行提交和回滚。 **容器事务**:在J2EE环境中,容器(如WebLogic、JBoss、...

    spring ibatis 配置(包括事务管理)

    常用的数据源有Apache的DBCP或Tomcat的DataSource,它们都是Spring的Bean,可以被Spring管理。 ```xml <!-- 设置数据库连接参数,如URL、用户名、密码等 --> ``` 3. **配置SqlSessionFactory**:...

    java web 连接数据库

    2. 数据源(DataSource):在Java Web应用中,数据源是连接数据库的关键组件。它是一个包含数据库连接信息的对象,可以被多个线程共享,提高性能和可管理性。数据源通常存储在应用服务器中,例如Tomcat或JBoss,可...

    jdbc连接模板-代码

    总结来说,JDBC连接模板是Java开发中处理数据库操作的一种规范化方式,它结合了数据源、连接池、SQL执行和事务管理等功能,提高了代码的复用性和稳定性。在项目开发中,合理运用JDBC连接模板能够提升开发效率,保证...

    springboot+jta+atomikos

    它允许应用程序在多个数据源或服务之间进行协调,确保事务的原子性、一致性、隔离性和持久性(ACID属性)。通过JTA,开发者可以跨数据库、消息队列等不同资源执行全局事务,使得分布式环境下的数据操作更加一致和...

    基于JavaEE的学生会服务与事务管理系统.zip

    JNDI提供了一个统一的接口来查找和绑定资源,如数据源、邮件会话等。在系统中,JNDI可能用于查找数据库连接或其他服务。 7. **JTA(Java Transaction API)**: JTA用于管理分布式事务,确保在多资源操作中的数据...

    java连接DB2驱动

    - Java的JDBC API支持事务管理,你可以通过`Connection`对象的`setAutoCommit`方法来控制事务的提交和回滚。例如: ```java conn.setAutoCommit(false); try { // 执行数据库操作 conn.commit(); } catch ...

    图书管理系统 powerbuild

    在本系统中,我们可以通过创建数据库连接,定义数据源,实现对图书信息表的CRUD(Create, Read, Update, Delete)操作。 3. **事务处理与错误处理**:在图书管理中,可能涉及到多条记录的操作,这就需要使用事务...

    java 数据库通用连接类

    1. **类型1(JDBC-ODBC桥接驱动)**:这是最早的驱动方式,通过JDBC-ODBC桥接,将Java应用程序与ODBC数据源连接起来,适合于小型项目或测试环境。 2. **类型2(部分Java驱动)**:这类驱动是数据库厂商提供的本地库...

    J2ee直接访问数据库步骤

    J2EE直接访问数据库涉及的主要知识点包括:数据库表的创建与管理、数据源的配置、JNDI查找、JDBC编程(连接、查询、结果集处理)、事务管理和资源管理。理解并掌握这些知识点是J2EE开发中的基础技能,对于构建高效、...

    dbutils的使用_事务处理_多表操作_oracle大数据处理

    另一种是利用现有框架或服务器组件,如DBCP(Database Connection Pool)、C3P0或者Tomcat内置的数据源等。 JDBC(Java Database Connectivity)是Java语言中用于执行SQL语句的API,它定义了操作数据库的一套规则和...

    spring jta

    JTA是Java平台标准的一部分,用于管理跨多个数据源(如数据库、消息队列等)的事务。 在Spring框架中,JTA事务管理主要用于处理分布式系统中的事务,确保数据的一致性和完整性。Spring提供了两种主要的方式来实现...

    ssm宠物医院管理系统源代码

    在宠物医院管理系统中,它可能被用来管理数据库连接、事务控制以及业务逻辑层的服务对象。Spring的AOP(面向切面编程)特性可能被用来实现日志记录、权限控制等功能。 2. **SpringMVC**:作为Spring的Web MVC框架,...

    oracle12相关jar包及配置.rar

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据主导地位。...同时,理解并掌握JDBC、数据源、事务管理、安全性及性能优化等概念对于开发高效、稳定的Oracle数据库应用至关重要。

Global site tag (gtag.js) - Google Analytics