All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ktanx.jdbc.springjdbc.config.JdbcTemplateEngineConfigImpl Maven / Gradle / Ivy

The newest version!
package com.ktanx.jdbc.springjdbc.config;

import com.ktanx.jdbc.config.AbstractJdbcEngineConfig;
import com.ktanx.jdbc.persist.PersistExecutorFactory;
import com.ktanx.jdbc.springjdbc.persist.JdbcTemplatePersistExecutorFactory;
import org.apache.commons.lang3.StringUtils;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.ConnectionCallback;
import org.springframework.jdbc.core.JdbcOperations;
import org.springframework.jdbc.core.JdbcTemplate;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * Created by liyd on 17/4/12.
 */
public class JdbcTemplateEngineConfigImpl extends AbstractJdbcEngineConfig {

    private JdbcOperations jdbcOperations;

    protected void doInit() {

        if (this.defaultPersistExecutor == null) {
            if (jdbcOperations == null) {
                jdbcOperations = new JdbcTemplate(dataSource);
            }
            PersistExecutorFactory persistExecutorFactory = new JdbcTemplatePersistExecutorFactory(jdbcOperations);
            this.defaultPersistExecutor = persistExecutorFactory.getExecutor();
        }

        if (StringUtils.isBlank(this.dialect)) {
            this.dialect = jdbcOperations.execute(new ConnectionCallback() {
                public String doInConnection(Connection con) throws SQLException, DataAccessException {
                    return con.getMetaData().getDatabaseProductName().toUpperCase();
                }
            });
        }
    }

    public void setJdbcOperations(JdbcOperations jdbcOperations) {
        this.jdbcOperations = jdbcOperations;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy