【发布时间】:2011-08-28 11:53:53
【问题描述】:
我不太确定如何提出这个问题,所以请随时告诉我我的想法完全错误。
我想使用JdbcTemplate 和TransactionTemplate。我首先将连接池初始化为数据源,并将事务管理器创建为数据源?
BoneCPConfig connectionPoolConfig = new BoneCPConfig();
connectionPoolConfig.setJdbcUrl(...);
connectionPoolConfig.setUsername(...);
connectionPoolConfig.setPassword(...);
connectionPoolConfig.setMinConnectionsPerPartition(...);
connectionPoolConfig.setMaxConnectionsPerPartition(...);
dataSource = new BoneCPDataSource(connectionPoolConfig);
DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
definition.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
transactionManager.setDataSource(dataSource);
但现在我想创建我的 TransactionTemplate 和 JdbcTemplate:
transactionTemplate = new TransactionTemplate(transactionManager);
JdbcTemplate jdbc = new JdbcTemplate(transactionManager.getDataSource());
现在多线程访问transactionTemplate 和jdbc。这段代码是否保证在doInTransaction 中完成的所有操作都对所有 jdbc 调用使用相同的连接?
连接是否以某种方式在内部链接,因为看起来 JdbcTemplate 和 TransactionTemplate 可以使用他们想要的任何连接。我的代码是否正确/保存?
【问题讨论】:
标签: database spring jdbc jdbctemplate transactionmanager