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:com.company.project.config.DataConfig.java

@Bean(name = "txManager")
public PlatformTransactionManager txManager() {
    return new DataSourceTransactionManager(dataSource());
}

From source file:org.geowebcache.diskquota.jdbc.JDBCQuotaStore.java

/**
 * Sets the connection pool provider and initializes the tables in the dbms if missing
 *//*from w w  w . j a  va 2s.  c  om*/
public void setDataSource(DataSource dataSource) {
    this.dataSource = dataSource;
    DataSourceTransactionManager dsTransactionManager = new DataSourceTransactionManager(dataSource);
    this.tt = new TransactionTemplate(dsTransactionManager);
    this.jt = new SimpleJdbcTemplate(dsTransactionManager.getDataSource());
}

From source file:com.miserablemind.butter.bootstrap.RootContext.java

/**
 * Transaction Manager bean.//w w  w . j a  v a  2s . co m
 * In order to use transactions in {@link BasicDataSource},  the methods have to be annotated @Transactional.
 * The annotation should be used on implementations of service layer methods rather than interfaces.
 * For MySQL transactions to work database tables have to use InnoDB engine.
 *
 * @return {@link DataSourceTransactionManager} bean.
 */
@Bean
public PlatformTransactionManager txManager() {
    return new DataSourceTransactionManager(dataSource());
}

From source file:io.nflow.jetty.config.NflowJettyConfiguration.java

@Bean
public PlatformTransactionManager transactionManager(@NFlow DataSource nflowDataSource) {
    return new DataSourceTransactionManager(nflowDataSource);
}

From source file:dk.nsi.haiba.lprimporter.integrationtest.LPRIntegrationTestConfiguration.java

@Bean
public PlatformTransactionManager haibaTransactionManager(@Qualifier("haibaDataSource") DataSource ds) {
    return new DataSourceTransactionManager(ds);
}

From source file:org.surfnet.cruncher.config.SpringConfiguration.java

@Bean
public PlatformTransactionManager transactionManager() {
    return new DataSourceTransactionManager(cruncherDataSource());
}

From source file:dk.nsi.haiba.epimibaimporter.config.EPIMIBAConfiguration.java

@Bean
@Qualifier("haibaTransactionManager")
public PlatformTransactionManager haibaTransactionManager(@Qualifier("haibaDataSource") DataSource ds) {
    return new DataSourceTransactionManager(ds);
}

From source file:org.ohmage.query.impl.UserCampaignQueries.java

@Override
public void createUserCampaignMask(final CampaignMask mask) throws DataAccessException {

    // Create the transaction.
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("Creating an observer.");

    try {//from  w w w .j av  a  2 s . c  o m
        // Begin the transaction.
        PlatformTransactionManager transactionManager = new DataSourceTransactionManager(getDataSource());
        TransactionStatus status = transactionManager.getTransaction(def);

        // Campaign mask creation SQL.
        final String campaignMaskSql = "INSERT INTO campaign_mask(" + "assigner_user_id, "
                + "assignee_user_id, " + "campaign_id, " + "mask_id, " + "creation_time) " + "VALUES ("
                + "(SELECT id FROM user WHERE username = ?), " + "(SELECT id FROM user WHERE username = ?), "
                + "(SELECT id FROM campaign WHERE urn = ?), " + "?, " + "?)";

        // Campaign mask creation statement with parameters.
        PreparedStatementCreator maskCreator = new PreparedStatementCreator() {
            /*
             * (non-Javadoc)
             * @see org.springframework.jdbc.core.PreparedStatementCreator#createPreparedStatement(java.sql.Connection)
             */
            @Override
            public PreparedStatement createPreparedStatement(final Connection connection) throws SQLException {

                PreparedStatement ps = connection.prepareStatement(campaignMaskSql, new String[] { "id" });

                ps.setString(1, mask.getAssignerUserId());
                ps.setString(2, mask.getAssigneeUserId());
                ps.setString(3, mask.getCampaignId());
                ps.setString(4, mask.getId().toString());
                ps.setLong(5, mask.getCreationTime().getMillis());

                return ps;
            }

        };

        // The auto-generated key for the observer.
        KeyHolder maskKeyHolder = new GeneratedKeyHolder();

        // Create the observer.
        try {
            getJdbcTemplate().update(maskCreator, maskKeyHolder);
        } catch (org.springframework.dao.DataAccessException e) {
            transactionManager.rollback(status);
            throw new DataAccessException("Error executing SQL '" + campaignMaskSql + "' with parameters: "
                    + mask.getAssignerUserId() + ", " + mask.getAssigneeUserId() + ", " + mask.getCampaignId()
                    + ", " + mask.getId().toString() + ", " + mask.getCreationTime().getMillis(), e);
        }

        // Get the mask's DB ID.
        long key = maskKeyHolder.getKey().longValue();

        // Create each of the masks.
        final String campaignMaskPromptIdSql = "INSERT INTO campaign_mask_survey_prompt_map("
                + "campaign_mask_id, " + "survey_id, " + "prompt_id)" + "VALUES (?, ?, ?)";

        // Get the survey IDs from the mask.
        Map<String, Set<String>> promptIds = mask.getSurveyPromptMap();

        // Create the list of parameters for each of the survey IDs.
        List<Object[]> maskPromptIdParameters = new ArrayList<Object[]>(promptIds.size());

        // Cycle through the survey IDs building the parameters list.
        for (String surveyId : promptIds.keySet()) {
            for (String promptId : promptIds.get(surveyId)) {
                maskPromptIdParameters.add(new Object[] { key, surveyId, promptId });
            }
        }

        // Add the mask survey IDs.
        getJdbcTemplate().batchUpdate(campaignMaskPromptIdSql, maskPromptIdParameters);

        // Commit the transaction.
        try {
            transactionManager.commit(status);
        } catch (TransactionException e) {
            transactionManager.rollback(status);
            throw new DataAccessException("Error while committing the transaction.", e);
        }
    } catch (TransactionException e) {
        throw new DataAccessException("Error while attempting to rollback the transaction.", e);
    }

}

From source file:dk.nsi.haiba.lprimporter.config.LPRConfiguration.java

@Bean
public PlatformTransactionManager lprTransactionManager(@Qualifier("lprDataSource") DataSource ds) {
    return new DataSourceTransactionManager(ds);
}

From source file:org.cloudfoundry.workers.stocks.batch.BatchConfiguration.java

/**
 * We're working with a transactional RDBMS, so this implementation of
 * Spring's {@link PlatformTransactionManager} API is required in certain
 * cases.//  w w  w . ja va  2s.  c om
 */
@Bean
public PlatformTransactionManager transactionManager() {
    return new DataSourceTransactionManager(dsConfig.dataSource());
}