楼上的:这不是一个简单的连接池问题
请问,如果一个事物调用n个dao的方法,不管你用连接池还是不用
你都不能保证2个dao方法得到的是相同的连接。我的解决方案是:在dao中不取连接,你的连接要在调用dao之前取得并且保存起来
相关技术:
你去看看jdk的ThreadLocal类。这个类能够为一个线程保存一个对象。
你的一个事务肯定要在一个线程内做完的,这个毫无疑问。
你可以在你的业务逻辑类中调用多个dao模型。
调用dao之前创建一个connection,将其放入ThreadLocal内(set方法)
dao中用ThreadLocal的get方法将该线程保存的对象取出,进行操作
只要你的多个dao在一个线程内,那么你取得的连接肯定是相同的