Example usage for org.springframework.jdbc.datasource DataSourceTransactionManager DataSourceTransactionManager

List of usage examples for org.springframework.jdbc.datasource DataSourceTransactionManager DataSourceTransactionManager

Introduction

In this page you can find the example usage for org.springframework.jdbc.datasource DataSourceTransactionManager DataSourceTransactionManager.

Prototype

public DataSourceTransactionManager(DataSource dataSource) 

Source Link

Document

Create a new DataSourceTransactionManager instance.

Usage

From source file:org.unitils.database.DatabaseModule.java

public void registerTransactionManagementConfiguration(final DataSourceWrapper wrapper) {

    // Make sure that a spring DataSourceTransactionManager is used for transaction management, if
    // no other transaction management configuration takes preference
    registerTransactionManagementConfiguration(new UnitilsTransactionManagementConfiguration() {

        public boolean isApplicableFor(Object testObject) {
            return true;
        }//w  ww .  j  a  v a  2  s  .  co m

        public PlatformTransactionManager getSpringPlatformTransactionManager(Object testObject) {
            return new DataSourceTransactionManager(wrapper.getDataSourceAndActivateTransactionIfNeeded());
        }

        public boolean isTransactionalResourceAvailable(Object testObject) {
            return wrapper.isDataSourceLoaded();
        }

        public Integer getPreference() {
            return 1;
        }

    });
}

From source file:test.jdbc.datasource.DataSourceInitializer.java

private void doExecuteScript(final Resource scriptResource) {
    if (scriptResource == null || !scriptResource.exists())
        return;/*from   w  ww.  j  a v a 2  s.  c  o  m*/
    final JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    String[] scripts;
    try {
        String[] list = StringUtils.delimitedListToStringArray(
                stripComments(IOUtils.readLines(scriptResource.getInputStream())), ";");
        scripts = list;
    } catch (IOException e) {
        throw new BeanInitializationException("Cannot load script from [" + scriptResource + "]", e);
    }
    for (int i = 0; i < scripts.length; i++) {
        final String script = scripts[i].trim();
        TransactionTemplate transactionTemplate = new TransactionTemplate(
                new DataSourceTransactionManager(dataSource));
        transactionTemplate.execute(new TransactionCallback<Void>() {

            @Override
            public Void doInTransaction(TransactionStatus status) {
                if (StringUtils.hasText(script)) {
                    try {
                        jdbcTemplate.execute(script);
                    } catch (DataAccessException e) {
                        if (!script.toUpperCase().startsWith("DROP")) {
                            throw e;
                        }
                    }
                }
                return null;
            }

        });
    }

}