質問の仕方がよくわからないので、私の考えが完全に間違っていることを教えてください。
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 が必要な接続を使用できるように見えるため、接続は何らかの方法で内部的にリンクされていますか。私のコードは正しいですか?