Nie jestem do końca pewien, jak sformułować pytanie, więc możesz mi powiedzieć, że kompletnie się mylę.JDBCTemplate z TransactionTemplate i pulą połączeń, którego źródło danych należy użyć
Chcę użyć JdbcTemplate
i TransactionTemplate
. Zacznę od zainicjowania mojej puli połączeń jako źródła danych i utworzenia menedżera transakcji jako źródła danych, jak również?
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);
Ale teraz chcę utworzyć mój TransactionTemplate i JdbcTemplate:
transactionTemplate = new TransactionTemplate(transactionManager);
JdbcTemplate jdbc = new JdbcTemplate(transactionManager.getDataSource());
Teraz mulitple wątki dostępu transactionTemplate
i jdbc
. Czy ten kod gwarantuje, że wszystko wykonane w doInTransaction
używa tego samego połączenia dla wszystkich wywołań jdbc?
Czy połączenie jest w jakiś sposób połączone wewnętrznie, ponieważ wygląda na to, że JdbcTemplate i TransactionTemplate mogą korzystać z dowolnych połączeń. Czy mój kod jest poprawny/zapisać?