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:dao.ScriptFinderDAO.java

public static ObjectNode getPagedScripts(JsonNode filterOpt, int page, int size) {
    ObjectNode result = Json.newObject();

    javax.sql.DataSource ds = getJdbcTemplate().getDataSource();
    DataSourceTransactionManager tm = new DataSourceTransactionManager(ds);
    TransactionTemplate txTemplate = new TransactionTemplate(tm);
    String scriptName = null;//from w ww .  ja  v a  2 s .  c  o  m
    String scriptPath = null;
    String scriptType = null;
    String chainName = null;
    String jobName = null;
    String committerName = null;
    String committerEmail = null;
    if (filterOpt != null && (filterOpt.isContainerNode())) {
        if (filterOpt.has("scriptName")) {
            scriptName = filterOpt.get("scriptName").asText();
        }
        if (filterOpt.has("scriptPath")) {
            scriptPath = filterOpt.get("scriptPath").asText();
        }
        if (filterOpt.has("scriptType")) {
            scriptType = filterOpt.get("scriptType").asText();
        }
        if (filterOpt.has("chainName")) {
            chainName = filterOpt.get("chainName").asText();
        }
        if (filterOpt.has("jobName")) {
            jobName = filterOpt.get("jobName").asText();
        }
        if (filterOpt.has("committerName")) {
            committerName = filterOpt.get("committerName").asText();
        }
        if (filterOpt.has("committerEmail")) {
            committerEmail = filterOpt.get("committerEmail").asText();
        }
    }

    final String finalScriptName = scriptName;
    final String finalScriptPath = scriptPath;
    final String finalScriptType = scriptType;
    final String finalChainName = chainName;
    final String finalJobName = jobName;
    final String finalCommitterName = committerName;
    result = txTemplate.execute(new TransactionCallback<ObjectNode>() {
        public ObjectNode doInTransaction(TransactionStatus status) {

            List<Map<String, Object>> rows = null;
            String whereClause = "";
            boolean needAnd = false;
            Map<String, Object> params = new HashMap<String, Object>();
            if (StringUtils.isNotBlank(finalScriptName)) {
                if (StringUtils.isBlank(whereClause)) {
                    whereClause = " WHERE ";
                }
                if (needAnd) {
                    whereClause += " AND ";
                }
                whereClause += " script_name like :scriptname ";
                needAnd = true;
                params.put("scriptname", "%" + finalScriptName + "%");
            }
            if (StringUtils.isNotBlank(finalScriptPath)) {
                if (StringUtils.isBlank(whereClause)) {
                    whereClause = " WHERE ";
                }
                if (needAnd) {
                    whereClause += " AND ";
                }
                whereClause += " script_path like :scriptpath ";
                needAnd = true;
                params.put("scriptpath", "%" + finalScriptPath + "%");
            }
            if (StringUtils.isNotBlank(finalScriptType)) {
                if (StringUtils.isBlank(whereClause)) {
                    whereClause = " WHERE ";
                }
                if (needAnd) {
                    whereClause += " AND ";
                }
                whereClause += " script_type like :scripttype ";
                needAnd = true;
                params.put("scripttype", "%" + finalScriptType + "%");
            }
            if (StringUtils.isNotBlank(finalChainName)) {
                if (StringUtils.isBlank(whereClause)) {
                    whereClause = " WHERE ";
                }
                if (needAnd) {
                    whereClause += " AND ";
                }
                whereClause += " chain_name like :chainname ";
                needAnd = true;
                params.put("chainname", "%" + finalChainName + "%");
            }
            if (StringUtils.isNotBlank(finalJobName)) {
                if (StringUtils.isBlank(whereClause)) {
                    whereClause = " WHERE ";
                }
                if (needAnd) {
                    whereClause += " AND ";
                }
                whereClause += " job_name like :jobname ";
                needAnd = true;
                params.put("jobname", "%" + finalJobName + "%");
            }
            if (StringUtils.isNotBlank(finalCommitterName)) {
                if (StringUtils.isBlank(whereClause)) {
                    whereClause = " WHERE ";
                }
                if (needAnd) {
                    whereClause += " AND ";
                }
                whereClause += " ( committer_ldap like :committername or committer_name like :committername )";
                needAnd = true;
                params.put("committername", "%" + finalCommitterName + "%");
            }
            String query = GET_PAGED_SCRIPTS.replace("$WHERE_CLAUSE", whereClause);
            params.put("index", (page - 1) * size);
            params.put("size", size);
            NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(
                    getJdbcTemplate().getDataSource());
            rows = namedParameterJdbcTemplate.queryForList(query, params);
            long count = 0;
            try {
                count = getJdbcTemplate().queryForObject("SELECT FOUND_ROWS()", Long.class);
            } catch (EmptyResultDataAccessException e) {
                Logger.error("Exception = " + e.getMessage());
            }

            List<ScriptInfo> pagedScripts = new ArrayList<ScriptInfo>();
            for (Map row : rows) {
                int applicationID = (Integer) row.get(ScriptInfoRowMapper.APPLICATION_ID_COLUMN);
                int jobID = (Integer) row.get(ScriptInfoRowMapper.JOB_ID_COLUMN);
                String scriptUrl = (String) row.get(ScriptInfoRowMapper.SCRIPT_URL_COLUMN);
                String scriptPath = (String) row.get(ScriptInfoRowMapper.SCRIPT_PATH_COLUMN);
                String scriptType = (String) row.get(ScriptInfoRowMapper.SCRIPT_TYPE_COLUMN);
                String chainName = (String) row.get(ScriptInfoRowMapper.CHAIN_NAME_COLUMN);
                String jobName = (String) row.get(ScriptInfoRowMapper.JOB_NAME_COLUMN);
                String scriptName = (String) row.get(ScriptInfoRowMapper.SCRIPT_NAME_COLUMN);
                String committerName = (String) row.get(ScriptInfoRowMapper.COMMITTER_NAMES_COLUMN);
                String committerEmail = (String) row.get(ScriptInfoRowMapper.COMMITTER_EMAILS_COLUMN);
                ScriptInfo scriptInfo = new ScriptInfo();
                scriptInfo.applicationID = applicationID;
                scriptInfo.jobID = jobID;
                scriptInfo.scriptUrl = scriptUrl;
                scriptInfo.scriptPath = scriptPath;
                scriptInfo.scriptType = scriptType;
                scriptInfo.scriptName = scriptName;
                scriptInfo.chainName = chainName;
                scriptInfo.jobName = jobName;
                scriptInfo.committerName = committerName;
                scriptInfo.committerEmail = committerEmail;
                pagedScripts.add(scriptInfo);
            }

            ObjectNode resultNode = Json.newObject();
            resultNode.put("count", count);
            resultNode.put("page", page);
            resultNode.put("itemsPerPage", size);
            resultNode.put("totalPages", (int) Math.ceil(count / ((double) size)));
            resultNode.set("scripts", Json.toJson(pagedScripts));

            return resultNode;
        }
    });

    return result;
}

From source file:org.dalesbred.integration.spring.SpringConfigurationTest.java

@Test
public void rollbackForSpringTransactionDiscardsChangesOfDalesbred() {
    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SimpleConfiguration.class);
    DataSource dataSource = ctx.getBean(DataSource.class);
    Database db = ctx.getBean(Database.class);

    db.update("drop table if exists spring_tx_test");
    db.update("create table spring_tx_test (id int)");

    new TransactionTemplate(new DataSourceTransactionManager(dataSource)).execute(status -> {
        db.update("insert into spring_tx_test (id) values (1)");
        status.setRollbackOnly();/*from  w ww .  j  a va  2 s.c  o m*/
        return "";
    });

    assertThat(db.findUniqueInt("select count(*) from spring_tx_test"), is(0));
}

From source file:com.xsb.conf.Application.java

@Bean
public PlatformTransactionManager txManager() {
    return new DataSourceTransactionManager(database());
}

From source file:net.collegeman.grails.e3db.Template.java

public static void setDefaultDataSource(DataSource dataSource) {
    defaultDataSource = dataSource;/*from  ww w  . j  a  v  a 2 s  .com*/
    defaultSimpleJdbcTemplate = new SimpleJdbcTemplate(defaultDataSource);
    defaultTransactionTemplate = new TransactionTemplate(new DataSourceTransactionManager(defaultDataSource));
}

From source file:io.lavagna.config.PersistenceAndServiceConfig.java

@Bean
public PlatformTransactionManager platformTransactionManager(DataSource dataSource) {
    return new DataSourceTransactionManager(dataSource);
}

From source file:com.mohoo.data.collection.config.MyBatisConfig.java

@Bean
public PlatformTransactionManager annotationDrivenTransactionManager() {
    return new DataSourceTransactionManager(dataSource);
}

From source file:hoot.services.HootServicesSpringConfig.java

@Bean(name = "transactionManager")
@Autowired//w  w w .  j ava 2  s  .c o m
@DependsOn("dataSource")
public PlatformTransactionManager transactionManager(DataSource dataSource) {
    return new DataSourceTransactionManager(dataSource);
}

From source file:cherry.sqlapp.service.sqltool.exec.ExecQueryServiceImpl.java

@Override
public PageSet query(String databaseName, final QueryBuilder queryBuilder, final Map<String, ?> paramMap,
        final long pageNo, final long pageSz, final Consumer consumer) {

    final DataSource dataSource = dataSourceDef.getDataSource(databaseName);
    PlatformTransactionManager txMgr = new DataSourceTransactionManager(dataSource);
    DefaultTransactionDefinition txDef = new DefaultTransactionDefinition();
    txDef.setReadOnly(true);//from   ww  w  .j  a  va  2  s  .co  m

    TransactionOperations txOp = new TransactionTemplate(txMgr, txDef);
    return txOp.execute(new TransactionCallback<PageSet>() {
        @Override
        public PageSet doInTransaction(TransactionStatus status) {
            try {

                long count = count(dataSource, queryBuilder.buildCount(), paramMap);
                PageSet pageSet = paginator.paginate(pageNo, count, pageSz);

                long numOfItems = extractor.extract(dataSource,
                        queryBuilder.build(pageSz, pageSet.getCurrent().getFrom()), paramMap, consumer,
                        new NoneLimiter());
                if (numOfItems != pageSet.getCurrent().getCount()) {
                    throw new IllegalStateException();
                }

                return pageSet;
            } catch (IOException ex) {
                throw new IllegalStateException(ex);
            }
        }
    });
}

From source file:de.codecentric.batch.configuration.TaskExecutorBatchConfigurer.java

@Autowired
public void setDataSource(DataSource dataSource) {
    this.dataSource = dataSource;
    this.transactionManager = new DataSourceTransactionManager(dataSource);
}

From source file:com.create.mybatis.repository.config.MyBatisAutoConfiguration.java

@Bean
@ConditionalOnMissingBean/*from   www .  ja v a  2 s  . c om*/
public PlatformTransactionManager transactionManager(final DataSource dataSource) throws Exception {
    return new DataSourceTransactionManager(dataSource);
}