最佳答案
DAO层采用JdbcTemplate进行数据库操作。 Service层调用DAO层方法。 由于一个Service方法可能需要调用多个DAO对象的方法,需要在Service层进行事务控制。 由于一些原因,需要采用编程式事务(现使用TransactionTemplate)。 可是存在一个问题: 只有当创建TransactionTemplate对象的DataSourceTransactionManager使用的DataSource对象和DAO对象创建JdbcTemplate对象使用的DataSource是同一个对象时才能在transactionTemplate.execute()方法中控制事务。 暂时想到如下设计: 1. BasicDao类 所有DAO的父类,提供静态变量DataSource用于为所有的DAO类创建JdbcTemplate对象。 同时提供DataSource的get方法,用于在Service方法中创建DataSourceTransactionManager对象。