c3p0连接池在eclipse下怎么用

2025-03-25 07:10:23
推荐回答(3个)
回答1:

package com.siy.test;

import java.sql.Connection;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;
import com.mchange.v2.c3p0.DriverManagerDataSource;

public class C3p0Test {

/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
ComboPooledDataSource ds=new ComboPooledDataSource();
ds.setDriverClass("com.microsoft.jdbc.sqlserver.SQLServerDriver");
ds.setJdbcUrl("jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs");
ds.setUser("sa");
ds.setPassword("");
ds.setMaxPoolSize(2);

javax.sql.DataSource dataSource=ds;

for(int i=0;i<10;i++){
Connection con=dataSource.getConnection();
System.out.println(con);
con.close();
}

}

}

这段代码通过C3P0取得了CONNECTION

C3P0的JAR包就跟导数据库的驱动包一样导进去就可以用了

回答2:

1、eclipse中创建c3p0.properties文件,内容如下:
c3p0.driverClass=org.postgresql.Driver
c3p0.jdbcUrl=jdbc:postgresql://192.168.20.33:5432/kwtmap
c3p0.user=nwd
c3p0.password=ok123456
c3p0.minPoolSize=5
c3p0.maxPoolSize=20
c3p0.acquireIncrement=5
c3p0.initialPoolSize=5
c3p0.maxIdleTime=240
2、编写以下java代码进行数据库的连接:
package com.boonya.mongo.optimize;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import com.boonya.mongo.utils.ConstantUtils;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* MDBManager.java
* 功能:使用C3P0连接池获取数据库连接对象
*/
public class MDBManager {

private static final MDBManager instance=new MDBManager();
private static ComboPooledDataSource cpds=new ComboPooledDataSource(true);

/**
* 此处可以不配置,采用默认也行
*/
static{
cpds.setDataSourceName("mydatasource");
cpds.setJdbcUrl(ConstantUtils.getValue("c3p0.jdbcUrl").toString());
try {
cpds.setDriverClass(ConstantUtils.getValue("c3p0.driverClass").toString());
} catch (PropertyVetoException e) {
e.printStackTrace();
}
cpds.setUser(ConstantUtils.getValue("c3p0.user").toString());
cpds.setPassword(ConstantUtils.getValue("c3p0.password").toString());
cpds.setMaxPoolSize(Integer.valueOf(ConstantUtils.getValue("c3p0.maxPoolSize").toString()));
cpds.setMinPoolSize(Integer.valueOf(ConstantUtils.getValue("c3p0.minPoolSize").toString()));
cpds.setAcquireIncrement(Integer.valueOf(ConstantUtils.getValue("c3p0.acquireIncrement").toString()));
cpds.setInitialPoolSize(Integer.valueOf(ConstantUtils.getValue("c3p0.initialPoolSize").toString()));
cpds.setMaxIdleTime(Integer.valueOf(ConstantUtils.getValue("c3p0.maxIdleTime").toString()));
}

private MDBManager(){}

public static MDBManager getInstance(){
return instance;
}
public static Connection getConnection(){
try {
return cpds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}

}

回答3:

如果要在eclipse下面使用c3p0那么强烈建议你使用hibernate,这样只需要写一个配置文件就可以了,而且你不需要写任何特殊的类就可以完成。