1.借助ThreadLocal在当前线程以dataSource为key,bind一个Connection.每次从ThreadLocal里面取,具体实现你可以去看Spring的TransactionSynchronizationManager和DataSourceUtils这2个类。
2.如果是指长事务的话,给表加一个version字段,在程序里面管理,提交表数据时判断。