iBATIS DAO 事务管理实现 iBATIS DAO 事务管理组件不但要管理事务连接池,同时也要管理多个ORM 的事务处理。iBATIS DAO 框架重要的因素之一是它全面的事务支持。iBATIS DAO 框架是对通用事务管理的一个包装,向开发人员提供了一致的事务管理抽象。iBATIS DAO 目前支持如下7 种实现事务的管理框架:JDBC、Apache Ojb、Toplink、JTA、SQLMap、Hibernate 和 EXTERNAL 事务。 JDBC 的事务管理器:用DataSou rce API 实现连接池服务。现阶段支持三种DataSou rce,分别为 Simple、DBCP和 JNDI。Simple 是采用iBATIS 自己实现的一个SimpleDataSou rce,其理想运行场所是对可靠性要求低并且比较独立的事务处理。DBCP 是采用Jakarta DBCP 的DataSou rce。JNDI 事务是基于检索 JNDI 目录而生成的DataSou rce。 JTA 事务管理器管理事务使用JTA 的API 来实现,实现模式与上述基本一致,还是要通过检索 JNDI 目录而生成的DataSou rce。但这个JTA 事务管理器允许开发人员对UserTransaction 实例进行控制。 SQLMap 事务管理器基于 iBATIS SQLMap 框架平台的事务处理。iBATIS DAO 事务管理在此只起到一个二传手的作用。Hibernate 事务管理器、Apache Ojb 事务管理器和 Toplink 事务管理器基本与 SQLMap 事务管理器类似,都是转移给相关平台的事务管理来进行处理的。 1.iBATIS DAO 事务管理的实现和配置 DAO 本身是没有进行事务处理的。在事务处理方面,DAO 充当了一个二传手。它把事务处理都转移给各个持久层来进行控制,实现二传手的工具就是DaoContex t。DAO 所有的事务处理都提交到 DaoContex t 接口方法,然后DaoContex t 接口通过调用持久层接口的相应方法来实现。 2.DAO 事务管理的结构说明 iBATIS DAO 框架提供了事务管理模块。而这个事务管理可以应用到很多场合,包括 JDBC、Hibernate、JTA、SQLMap 等。其中 JtaDaoTransaction 类、JdbcDaoTransaction 类、SqlMapDaoTransaction 类和 HibernateDaoTransaction类实现ConnectionDaoTransaction 接口。ConnectionDaoTransaction 接口继承 DaoTransaction 接口。而OjbBrokerDaoTransaction 类和 ToplinkDaoTransaction 类直接实现DaoTransaction 接口。OjbBrokerTransactionManager类、JtaDaoTransactionManager 类、JdbcDaoTransactionManager 类、HibernateDaoTransaction Manager 类、SqlMapDaoTransa...