Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.sql.Connection;
- import org.apache.tomcat.jdbc.pool.DataSource;
- import org.apache.tomcat.jdbc.pool.PoolProperties;
- public class DataSourceConfig
- {
- public static final String DATA_SOURCE_CLASS_NAME = "org.postgresql.Driver";
- public static final String DATA_SOURCE_URL = "jdbc:postgresql://%s:%s/%s";
- public static final String JDBC_INTERCEPTORS = "org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;"
- + "org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer";
- private String dataSourceClassName = DATA_SOURCE_CLASS_NAME;
- private String hostName;
- private String portNumber;
- private String userName;
- private String password;
- private String dbName;
- // Connection pool
- private PoolProperties p = new PoolProperties();
- private DataSource datasource = new DataSource();
- public String getHostName() {
- return hostName;
- }
- public void setHostName(String hostName) {
- this.hostName = hostName;
- }
- /**
- * @return the portNumber
- */
- public String getPortNumber() {
- return portNumber;
- }
- /**
- * @param portNumber the portNumber to set
- */
- public void setPortNumber(String portNumber) {
- this.portNumber = portNumber;
- }
- /**
- * @return the userName
- */
- public String getUserName() {
- return userName;
- }
- /**
- * @param userName the userName to set
- */
- public void setUserName(String userName) {
- this.userName = userName;
- }
- /**
- * @return the password
- */
- public String getPassword() {
- return password;
- }
- /**
- * @param password the password to set
- */
- public void setPassword(String password) {
- this.password = password;
- }
- public String getDbName(){
- return this.dbName;
- }
- public void setDbName(String dbName){
- this.dbName = dbName;
- }
- public void setupPool() {
- try {
- String url = String.format(DATA_SOURCE_URL, hostName, portNumber, dbName);
- p.setUrl(url);
- p.setDriverClassName(DATA_SOURCE_CLASS_NAME);
- p.setUsername(userName);
- p.setPassword(password);
- p.setJmxEnabled(true);
- p.setTestWhileIdle(false);
- p.setTestOnBorrow(true);
- p.setValidationQuery("SELECT 1");
- p.setTestOnReturn(false);
- p.setValidationInterval(30000);
- p.setTimeBetweenEvictionRunsMillis(30000);
- p.setMaxActive(100);
- p.setInitialSize(10);
- p.setMaxWait(10000);
- p.setRemoveAbandonedTimeout(60000);
- p.setMinEvictableIdleTimeMillis(30000);
- p.setMinIdle(10);
- p.setLogAbandoned(true);
- p.setRemoveAbandoned(true);
- p.setJdbcInterceptors(JDBC_INTERCEPTORS);
- datasource.setPoolProperties(p);
- } catch(Exception ex) {
- ex.printStackTrace();
- }
- }
- public Connection getConnection() {
- Connection connection = null;
- try {
- System.out.println("Waiting for getting connection!");
- connection = datasource.getConnection();
- } catch(Exception ex) {
- ex.printStackTrace();
- return null;
- }
- return connection;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement