Last active
April 13, 2017 00:33
-
-
Save addozhang/0d83704af6656079878bd5614c82c16c to your computer and use it in GitHub Desktop.
GreenPlum JDBC and C3P0 Datasource
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import com.mchange.v2.c3p0.DataSources; | |
import javax.sql.DataSource; | |
import java.sql.*; | |
import java.util.Properties; | |
/** | |
* Created by addo on 2017/4/10. | |
*/ | |
public class JDBCTest { | |
private static String POSTGRESQL_URL = "jdbc:postgresql://192.168.56.101:5432/example"; | |
private static String POSTGRESQL_USERNAME = "dbuser"; | |
private static String POSTGRESQL_PASSWORD = "password"; | |
private static String GPDB_URL = "jdbc:pivotal:greenplum://192.168.56.101:5432;DatabaseName=test"; | |
private static String GPDB_USERNAME = "dbuser"; | |
private static String GPDB_PASSWORD = "password"; | |
/** | |
* Postgresql Connection | |
* | |
* @return | |
* @throws ClassNotFoundException | |
* @throws SQLException | |
*/ | |
public static Connection postgresqlConnection() throws ClassNotFoundException, SQLException { | |
Class.forName("org.postgresql.Driver"); | |
return DriverManager.getConnection(POSTGRESQL_URL, POSTGRESQL_USERNAME, POSTGRESQL_PASSWORD); | |
} | |
/** | |
* GreenPlum Connection | |
* | |
* @return | |
* @throws ClassNotFoundException | |
* @throws SQLException | |
*/ | |
public static Connection gpdbConnection() throws ClassNotFoundException, SQLException { | |
Class.forName("com.pivotal.jdbc.GreenplumDriver"); | |
return DriverManager.getConnection(GPDB_URL, GPDB_USERNAME, GPDB_PASSWORD); | |
} | |
/** | |
* GreenPlud C3P0 Datasource Connection | |
* | |
* @return | |
* @throws SQLException | |
*/ | |
public static Connection gpdbC3P0Connection() throws SQLException { | |
Properties c3p0Props = new Properties(); | |
c3p0Props.setProperty("driverClass", "com.pivotal.jdbc.GreenplumDriver"); | |
c3p0Props.setProperty("jdbcUrl", GPDB_URL); | |
c3p0Props.setProperty("user", GPDB_USERNAME); | |
c3p0Props.setProperty("password", GPDB_PASSWORD); | |
c3p0Props.setProperty("acquireIncrement", "5"); | |
c3p0Props.setProperty("initialPoolSize1", "1"); | |
c3p0Props.setProperty("maxIdleTime", "60"); | |
c3p0Props.setProperty("maxPoolSize", "50"); | |
c3p0Props.setProperty("minPoolSize", "1"); | |
c3p0Props.setProperty("idleConnectionTestPeriod", "60"); | |
return DataSources.unpooledDataSource(GPDB_URL, c3p0Props).getConnection(); | |
} | |
public static void main(String[] args) throws ClassNotFoundException, SQLException { | |
Connection[] connections = new Connection[]{postgresqlConnection(), gpdbConnection(), gpdbC3P0Connection()}; | |
for (Connection connection : connections) { | |
CallableStatement callableStatement = connection.prepareCall("select * from user"); | |
boolean execute = callableStatement.execute(); | |
ResultSet resultSet = callableStatement.getResultSet(); | |
while (resultSet.next()) { | |
System.out.println(resultSet.getString("current_user")); | |
} | |
callableStatement.close(); | |
connection.close(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment