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

pl.codewise.canaveral.mock.postgresql.JdbcManager Maven / Gradle / Ivy

There is a newer version: 1.4.3
Show newest version
package pl.codewise.canaveral.mock.postgresql;

import com.google.common.annotations.VisibleForTesting;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import javax.sql.DataSource;
import java.util.List;

class JdbcManager {

    private final JdbcTemplate jdbc;

    @VisibleForTesting
    JdbcManager(JdbcTemplate jdbcTemplate) {
        this.jdbc = jdbcTemplate;
    }

    static JdbcManager create(String dbUrl, String user, String password) {
        return new JdbcManager(createJdbcTemplate(createDataSource(dbUrl, user, password)));
    }

     List select(String sql, RowMapper rowMapper) {
        return jdbc.query(sql, rowMapper);
    }

    int update(String sql) {
        return jdbc.update(sql);
    }

    int update(String sql, Object... args) {
        return jdbc.update(sql, args);
    }

    private static DataSource createDataSource(String dbUrl, String user, String password) {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();

        dataSource.setDriverClassName("org.postgresql.Driver");
        dataSource.setUrl(dbUrl + "?tcpKeepAlive=true");
        dataSource.setUsername(user);
        dataSource.setPassword(password);

        return dataSource;
    }

    private static JdbcTemplate createJdbcTemplate(DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy