将JDBC con转换为C3P0

时间:2014-11-09 20:06:45

标签: jdbc c3p0

我有一个JDBC连接:

String url = "jdbc:mysql://1.1.1.1/";
String dbName = "users";
String driver = "com.mysql.jdbc.Driver";
String userName = "superadmin";
String password = "p@ssword";

try {
    Class.forName(driver).newInstance();

    con = DriverManager.getConnection(url + dbName, userName, password);

我试图将其转换为c3p0

  ComboPooledDataSource cpds = new ComboPooledDataSource();
  cpds.setDriverClass( "com.mysql.jdbc.Driver" );
  cpds.setJdbcUrl( "jdbc:mysql://1.1.1.1/" );
  cpds.setUser("superadmin");
  cpds.setPassword("p@ssword");

  cpds.setMinPoolSize(5);
  cpds.setAcquireIncrement(5);
  cpds.setMaxPoolSize(20);
  cpds.setMaxStatements(180);

  Connection con = (Connection) cpds.getConnection();

但它不会转换,我尝试使用一些unwrap()方法,但仍然无法使其正常工作。我错过了什么?

1 个答案:

答案 0 :(得分:0)

您不需要打开包装,也不需要将已经连接的连接转换为连接。

您确实需要使用正确的jdbcUrl。将您的jdbcUrl参数与DriverManager.getConnection()与您在ComboPooledDataSource上设置的jdbcUrl进行比较。后者缺少jdbcUrl的最后一部分,即数据库名称。