本文以一个简单的实例来介绍bbossgroups中持久层框架如何实现多数据库事务:
@Test
public void testMutiDBTX()
{
TransactionManager tm = new TransactionManager();
try
{
tm.begin();
SQLExecutor.deleteWithDBName("bspf","delete from table1 where id=1");
SQLExecutor.updateWithDBName("query","update table1 set value='test' where id=1");
tm.commit();
DBUtil.debugStatus();//debug连接池实时状态
}
catch(Exception e)
{
}
finally
{
tm.release();
}
}
}
这个示例展示的在两个数据源(数据源名称为bspf和query)上分别执行一个delete操作和一个删除操作,通过TransactionManager事务管理组件来控制两个操作的事务,从而保证两个数据源事务的一致性,也就是说在bspf和query两个数据源上的操作都包含在一个事务中,这就是所谓的多数据库事务。
另外还可以支持嵌套的事务处理,例如:
@Test
public void testNestedMutiDBTX()
{
TransactionManager tm = new TransactionManager();
try
{
tm.begin();
SQLExecutor.deleteWithDBName("bspf","delete from table1 where id=1");
SQLExecutor.updateWithDBName("query","update table1 set value='test' where id=1");
testMutiDBButSampleDatabaseTX();
tm.commit();
DBUtil.debugStatus();//debug连接池实时状态
}
catch(Exception e)
{
}
finally
{
tm.release();
}
}
@Test
public void testMutiDBButSampleDatabaseTX()
{
TransactionManager tm = new TransactionManager();
try
{
tm.begin();
SQLExecutor.deleteWithDBName("bspf","delete from table1 where id=1");
SQLExecutor.updateWithDBName("mq","update table1 set value='test' where id=1");
tm.commit();
DBUtil.debugStatus();//debug连接池实时状态
}
catch(Exception e)
{
}
finally
{
tm.release();
}
DBUtil.debugStatus();;//debug连接池实时状态
}
bspf和query两个数据源的配置(poolman.xml):
<?xml version="1.0" encoding="utf-8"?>
<poolman>
<datasource>
<dbname>bspf</dbname>
<loadmetadata>false</loadmetadata>
......
</datasource>
<datasource>
<dbname>query</dbname>
。。。。。
</datasource>
</poolman>
详细的配置请参考:
bbossgroups持久层框架数据源配置文件实例
分享到:
相关推荐
4. **AOP(面向切面编程)**:BBoss MVCDemo支持AOP,可以实现如事务管理、日志记录、权限控制等功能,提高代码的复用性和可维护性。 5. **国际化与本地化**:框架内置了国际化和本地化支持,使得应用可以根据用户...
2. **数据库操作**:BBoss提供了便捷的数据访问层(DAO),支持SQL动态生成、事务管理以及多种数据库的兼容性,使得数据库操作变得简单且高效。 3. **服务治理**:框架内置了服务注册与发现机制,可以实现微服务...
1. **事务管理**:支持数据库的ACID(原子性、一致性、隔离性、持久性)特性,确保数据的一致性和完整性。 2. **缓存机制**:提供缓存策略,减少对数据库的直接访问,提高性能。 3. **批量操作**:支持数据的批量...
3. **事务管理**:在TestTransaction.sql这个文件名中,我们可以推测BBoss Persistent也包含了事务管理功能。在处理CLOB和BLOB数据时,事务是至关重要的,因为它们确保了数据的一致性和完整性。如果在操作过程中发生...
3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...
bboss支持JDBC式的操作方式,使得开发者可以像操作数据库一样操作Elasticsearch,提高了开发效率。 3. **bboss与Elasticsearch的集成** 集成bboss和Elasticsearch时,首先需要在项目中引入bboss的依赖,并配置...
bboss内置了强大的持久层框架,支持多种数据库操作,如SQL语句执行、事务管理、缓存策略等。这使得开发者无需深入了解数据库细节,就能轻松处理数据存储和检索,提高了开发效率。 **5. 全局事务托管** bboss提供...
4. **持久层支持**: 框架集成了多种持久层技术,如Hibernate、MyBatis等,方便开发者进行数据库操作,提供了事务管理和数据访问的抽象层,提高了代码的可复用性。 5. **全局事务托管**: bboss支持分布式事务处理,...
bboss提供了全局事务管理功能,可以协调多个数据库操作,确保事务的一致性和完整性。即使在分布式环境下,也能有效地处理跨系统、跨服务的事务。 ### 6. 安全认证与SSO bboss框架内置了安全认证机制,包括用户身份...
在分布式环境中,bboss能够管理跨越多个数据库或服务的事务,确保数据的一致性。其全局事务托管功能支持JTA(Java Transaction API),实现跨系统、跨资源的事务控制,保证业务操作的原子性。 ### 6. 安全认证与SSO...
在配置文件中,可以设定数据库连接池、事务管理等,以实现高效的数据库操作。 DAO组件管理涉及到如何管理和注入数据库访问组件。DAO(Data Access Object)是访问数据库的对象,通常包含对数据库的基本操作方法。...