`
hehaibo
  • 浏览: 417693 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

ibatis 事务

阅读更多

sqlMap = xmlBuilder.buildSqlMap(reader);
User user = new User();
user.setId(new Integer(1));
user.setName("Erica");
user.setSex(new Integer(0));
sqlMap.update("User.updateUser", user);
 
User user2 = new User();
user2.setId(new Integer(2));
user2.setName("Kevin");
user2.setSex(new Integer(1));
sqlMap.update("User.updateUser", user2);

 

在执行sqlMap.update的时候,ibatis会自动判定当前的运行环境,这里 update操作并没有相对应的事务范围(startTransaction和endTransaction代码块),于是ibatis 将其作为一个单独的事务,并自动提交。对于上面的代码,update 执行了两次,与其相对应,事务也提交了两次(即每个 update操作为一个单独的事务)。
 
不过,值得注意的是,这里的所谓“自动判定”,可能有些误导,ibatis 并没有去检查当前是否已经有事务开启,从而判断当前数据库连接是否设定为自动提交。 实际上,在执行update语句时,sqlMap会检查当前的Session是否已经关联了某个数据库连接,如果没有,则取一个数据库连接,将其AutoCommit属性设为 true,然后执行 update 操作,执行完之后又将这个连接释放。这样,上面两次 update 操作实际上先后获取了两个数据库连接,而不是我们通常所认为的两次 update 操作都基于同一个JDBC Connection。这点在开发时需特别注意。

对 于 多条 SQL 组合 而 成 的一 个 JDBC 事 务 操 作 而 言, 必须 使 用startTransaction、commit和endTransaction 操作以实现整体事务的原子性。

分享到:
评论

相关推荐

    Spring+ibatis 保留ibatis事务的配置

    根据提供的文件信息,本文将详细解析如何在Spring与ibatis框架整合时,通过特定配置来保留ibatis事务处理机制,并实现对事务的自定义控制。文章将围绕标题、描述及部分代码片段展开讨论。 ### Spring与ibatis整合...

    spring+ibatis事务的配置

    很好的spring+ibatis事务的配置文档.

    ibatis事务控制案例

    本案例聚焦于`ibatis`(MyBatis前身)的事务管理,它是一个轻量级的Java持久层框架,提供了灵活的SQL映射功能。在Java应用中,Ibatis与SQL Server、MySQL等数据库配合,可以实现高效的数据库访问和事务处理。 **1. ...

    SPRING IBATIS 保留IBATIS事务的配置方式

    根据提供的文件信息,本文将详细解析Spring与iBatis整合时如何保留并使用iBatis事务管理机制,以及如何在应用程序中实现手动控制事务的方法。 ### Spring与iBatis整合 Spring框架是一个全面的企业级应用开发框架,...

    ibatis事务

    ibatis+spring事务控制 压缩文件中有很多例子,如果控制事务,事务不回滚的解决方法等等。另外附上python学习文档。

    Ibatis 事务处理

    标题 "Ibatis 事务处理" 涉及到的是在Java Web开发中使用Ibatis框架进行数据访问时的事务管理。Ibatis是一个轻量级的持久层框架,它允许开发者将SQL语句直接写在XML配置文件或者Java注解中,从而提供了灵活的数据...

    ibatis 完美例子 一对多 批处理 事务 和 spring struts2集成

    本文将深入探讨如何利用Ibatis实现一对多关系、批处理、事务管理和与Spring及Struts2的集成。 首先,让我们来看一下“一对多”关系。在数据库设计中,一对多关系很常见,比如一个用户可以有多个订单。在Ibatis中,...

    spring+ibatis声明式事务Demo

    当我们谈论"spring+ibatis声明式事务Demo"时,我们关注的是如何在Spring框架中利用iBatis实现声明式事务管理。 声明式事务管理是Spring框架提供的一种方便、高效的方式,使得开发者无需手动控制事务的开始、提交、...

    ibatis

    - 事务配置问题(如`spring&ibatis事务配置问题.htm`):整合过程中常见的问题可能涉及到事务的隔离级别、事务超时、回滚规则等,需要正确配置Spring的事务管理器以确保事务正确运行。 3. 文件编码转换: - 在...

    Spring+Struts+ibatis下配置数据读写分离及事务(一)

    本文将深入探讨如何在Spring、Struts和iBATIS这三大流行框架的集成环境中实现数据读写分离以及事务控制。我们将不涉及具体的代码实现,而是侧重于理论背景和设计原则。 首先,让我们理解数据读写分离的概念。数据...

    springmvc+ibatis框架包,使用spring注入,事务等,包都齐全

    自己配置的springmvc+ibatis框架,自己找齐了包,不容易啊,所以上来跟大家分享一下,spring自动注入包,事务包,ibatis包,数据库连接包,都齐全的,仅局限于springmvc+ibatis,这些包不多,不少,刚够

    iBATIS_DAO事务管理实现

    ### iBATIS DAO事务管理实现 #### 一、概述 iBATIS DAO(Data Access Object)框架中的事务管理是该框架的重要组成部分之一。它不仅负责管理事务连接池,还能够处理多个ORM(Object Relational Mapping)环境下的...

    ibatis培训教程

    - **iBATIS事务管理**: - 支持JDBC事务管理,适用于简单的应用程序。 - 如果在应用服务器环境中,可以选择MANAGED事务管理,由应用服务器负责事务的开始、提交或回滚。 - **事务隔离级别**: - iBATIS允许配置不同...

    spring+ibatis声明式事务Demo_

    本示例“spring+ibatis声明式事务Demo”将探讨如何在Spring与iBatis集成环境中使用声明式事务管理。声明式事务管理允许开发者通过配置来控制事务,无需在代码中显式处理事务开始、提交和回滚。 **Spring框架** 是一...

    DB事务详解

    事务的实现可以通过多种方式实现,如JDBC事务、JTA事务、IBATIS事务支持等。 4.1、JDBC事务 JDBC事务是Java数据库连接(JDBC)提供的一种事务机制。JDBC事务可以通过 Connection 对象的 setAutoCommit() 方法来...

    ibatis技术总结

    iBatis事务处理 iBatis提供了两种事务管理方式:JDBC事务管理和MANAGED事务管理。默认情况下,iBatis使用JDBC事务管理。开发者可以通过配置`<transactionManager>`元素来选择合适的事务管理策略,并确保事务的一致...

    spring+jotm+ibatis+mysql实现JTA分布式事务

    本项目“spring+jotm+ibatis+mysql实现JTA分布式事务”旨在利用这些技术来确保在分布式环境中的数据一致性。下面将详细介绍这个项目所涉及的知识点。 首先,Spring框架是Java开发中最常用的应用框架之一,它提供了...

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

    以下是关于"spring ibatis 配置(包括事务管理)"的详细说明: 1. **引入依赖**:首先,我们需要在项目中添加Spring和iBatis的相关依赖。通常,这会在Maven或Gradle的配置文件中完成,确保引入了正确的版本。 2. *...

    ibatis+jndi+mysql

    Ibatis 提供了事务控制功能,可以自动提交或回滚事务。例如,对于更新操作,可以在服务层代码中设置事务边界,如果操作成功则自动提交,否则回滚。 **Ibatis 与 JNDI 结合** JNDI(Java Naming and Directory ...

    ibatis学习资料

    - **iBATIS事务的划分** - **主动事务**:开发者通过代码控制事务的开始、提交和回滚。 - **被动事务**:iBATIS框架内部管理事务。 - **事务的使用**:在使用iBATIS时,可以通过SqlSession对象开启、提交或回滚...

Global site tag (gtag.js) - Google Analytics