bboss多数据库事务管理

简介: 本文以一个简单的实例来介绍bbossgroups中持久层框架如何实现多数据库事务: @Test public void testMutiDBTX() { TransactionManager tm = new TransactionManager(); try { tm.
本文以一个简单的实例来介绍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持久层框架数据源配置文件实例
目录
相关文章
|
7天前
|
关系型数据库 MySQL 数据库
【MySQL】:数据库事务管理
【MySQL】:数据库事务管理
21 0
|
21天前
|
关系型数据库 API 数据库
Django中的数据库事务管理:确保数据一致性
【4月更文挑战第15天】Django框架提供强大的数据库事务管理,确保ACID属性,保证数据一致性和完整性。文章深入讨论了Django事务管理,包括使用`@transaction.atomic`装饰器和`transaction.atomic()`上下文管理器手动控制事务,以及低级API进行精细管理。注意避免长时间事务、选择合适隔离级别、正确处理异常及了解数据库特性。掌握这些技巧对构建可靠Web应用至关重要。
|
2月前
|
SQL NoSQL 数据库
深入浅出:微服务架构下的数据库事务管理
【2月更文挑战第12天】 在当今微服务架构日益流行的背景下,如何有效地管理跨服务的数据库事务成为了开发与维护中的一大挑战。本文旨在探讨微服务环境下数据库事务管理的关键技术和策略,包括但不限于分布式事务的基本概念、常见的解决方案(如两阶段提交、补偿事务等),以及这些方案在实际应用中的优缺点比较。通过深入浅出的方式,本文希望能够帮助读者更好地理解并应对微服务架构下的数据库事务管理问题,进而提升系统的稳定性和可靠性。
|
5月前
|
SQL 安全 关系型数据库
数据库第十三次作业 事务管理
数据库第十三次作业 事务管理
33 6
|
7月前
|
XML Java Go
Spring事务管理: 构建稳健的数据库事务处理
Spring事务管理: 构建稳健的数据库事务处理
36 0
|
11月前
|
XML Oracle Java
第九篇 Spring数据库事务管理
第九篇 Spring数据库事务管理
81 0
|
12月前
|
SQL Oracle Java
Spring JDBC-Spring事务管理之数据库事务基础知识
Spring JDBC-Spring事务管理之数据库事务基础知识
63 0
|
SQL 数据库
【数据库技术基础】事务管理
【数据库技术基础】事务管理
67 0
|
SQL 存储 人工智能
数据库杂谈(九)—— 事务管理
本文主要讲解数据库中如何实现事务的管理
139 0