Skip to content

Instantly share code, notes, and snippets.

@agoston
Last active July 27, 2023 18:18
Show Gist options
  • Save agoston/9953322 to your computer and use it in GitHub Desktop.
Save agoston/9953322 to your computer and use it in GitHub Desktop.
JdbcTemplate manual transaction example, using TransactionTemplate
//[... initialize ...]
final SimpleDataSourceFactory simpleDataSourceFactory = new SimpleDataSourceFactory("com.mysql.jdbc.Driver");
final DataSource dataSource = simpleDataSourceFactory.createDataSource(jdbcUrl, user, pass);
jdbcTemplate = new JdbcTemplate(dataSource);
final DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dataSource);
transactionTemplate = new TransactionTemplate(transactionManager);
transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
//[... and then ...]
transactionTemplate.execute(new TransactionCallback<Object>() {
@Override
public Object doInTransaction(TransactionStatus status) {
jdbcTemplate.execute(...) // will be executed in transaction
}
}
@preslavmihaylov
Copy link

Finally...

an easy to understand & straightforward way to initialise jdbc template without spring.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment