Skip to content

Commit

Permalink
sql util
Browse files Browse the repository at this point in the history
  • Loading branch information
fireduck64 committed Aug 1, 2018
1 parent dfcad1c commit a9b124b
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 0 deletions.
9 changes: 9 additions & 0 deletions BUILD
Expand Up @@ -28,6 +28,15 @@ java_library(
],
)

java_library(
name = "sql_lib",
srcs = glob(["src/sql/*.java"]),
deps = [
"@commons_pool//jar",
"@commons_dbcp//jar",
],
)

java_test(
name = "ziptest",
srcs = ["test/ZipTest.java"],
Expand Down
11 changes: 11 additions & 0 deletions WORKSPACE
Expand Up @@ -46,3 +46,14 @@ maven_jar(
sha1 = "1b6c4ff09ce03f3052429139c2a68e295cae6604",
)

maven_jar(
name = "commons_pool",
artifact = "commons-pool:commons-pool:1.6",
sha1 = "4572d589699f09d866a226a14b7f4323c6d8f040",
)

maven_jar(
name = "commons_dbcp",
artifact = "commons-dbcp:commons-dbcp:1.4",
sha1 = "30be73c965cc990b153a100aaaaafcf239f82d39",
)
94 changes: 94 additions & 0 deletions src/sql/DBUtil.java
@@ -0,0 +1,94 @@
package duckutil.sql;


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


import org.apache.commons.pool.ObjectPool;
import org.apache.commons.pool.impl.GenericObjectPool;
import org.apache.commons.dbcp.ConnectionFactory;
import org.apache.commons.dbcp.PoolingDriver;
import org.apache.commons.dbcp.PoolableConnectionFactory;
import org.apache.commons.dbcp.DriverManagerConnectionFactory;

import java.util.Properties;

public class DBUtil
{

private static void loadDriver(String driver)
throws SQLException
{
try
{
Class.forName(driver).newInstance();
}
catch(Exception e)
{
throw new SQLException("Unable to load driver: " + driver);
}
}

public static void openConnectionPool(String pool_name, String driver_class, String uri, String user, String pass, int max_active, int max_idle)
throws SQLException
{

Properties props = new Properties();
props.put("autoReconnect","true");
props.put("user",user);
props.put("password",pass);

loadDriver(driver_class);
loadDriver("org.apache.commons.dbcp.PoolingDriver");


GenericObjectPool connectionPool = new GenericObjectPool(null);

connectionPool.setMaxActive(max_active);
connectionPool.setMaxIdle(max_idle);

ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(uri, props);

new PoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,true);

PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");

driver.registerPool(pool_name,connectionPool);

}


public static Connection openConnection(String pool_name)
throws SQLException
{
Connection conn = DriverManager.getConnection("jdbc:apache:commons:dbcp:" + pool_name);
conn.setAutoCommit(true);
return conn;

}
public static void safeClose(Connection conn)
{
if (conn==null) return;
try
{
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();

}
}

public static void printDriverStats(String pool_name) throws Exception
{
PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");
ObjectPool connectionPool = driver.getConnectionPool(pool_name);
System.out.println("NumActive: " + connectionPool.getNumActive());
System.out.println("NumIdle: " + connectionPool.getNumIdle());
}


}

0 comments on commit a9b124b

Please sign in to comment.