现在项目依旧连接两个数据库,两个数据库的访问都比较频繁.所以都必须用连接池.
那么我不明白的是,我现在两个库都用dbcp连接池还是说一个用dpcp,另一个用c3p0 ?两种用法会不会有什么问题?
因为之前的项目一个用了连接池,另一个用jdbc,这次的不行了.
麻烦有过经验的高手指点,感激不尽.我现在的连接池部分代码如下:
public class ConnPool {
private static DataSource source = null;
private static BasicDataSource ds = null; public Connection getConnection() {
Connection conn=null;
if (source == null) {
try {
conn = TchargeConn.getDataSource().getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//System.out.println("conn:" + conn);
return conn;
} private static DataSource getDataSource(String ctxName) {
DataSource ds = null;
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) envCtx.lookup(ctxName);
} catch (Exception e) {
e.printStackTrace();
} return ds; }
public static BasicDataSource getDataSource() {
if (ds == null) {
ds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://192.168.1.18:3306/data");
ds.setUsername("root");
ds.setPassword("root");
ds.setMaxActive(50);
}
return ds;
}
}
那么我不明白的是,我现在两个库都用dbcp连接池还是说一个用dpcp,另一个用c3p0 ?两种用法会不会有什么问题?
因为之前的项目一个用了连接池,另一个用jdbc,这次的不行了.
麻烦有过经验的高手指点,感激不尽.我现在的连接池部分代码如下:
public class ConnPool {
private static DataSource source = null;
private static BasicDataSource ds = null; public Connection getConnection() {
Connection conn=null;
if (source == null) {
try {
conn = TchargeConn.getDataSource().getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//System.out.println("conn:" + conn);
return conn;
} private static DataSource getDataSource(String ctxName) {
DataSource ds = null;
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) envCtx.lookup(ctxName);
} catch (Exception e) {
e.printStackTrace();
} return ds; }
public static BasicDataSource getDataSource() {
if (ds == null) {
ds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://192.168.1.18:3306/data");
ds.setUsername("root");
ds.setPassword("root");
ds.setMaxActive(50);
}
return ds;
}
}
另外c3p0有些地方不兼容需要注意(特别是对oracle)。
另外我想我问一下的就是,我如果用一个连接池,那么池内连接又是两个库的,他们会不协调吗?
还就是,在public static BasicDataSource getDataSource()方法里可以像配置文件里那样配置各项参数吧,比如:
minIdle="10"
maxIdle="30"
maxWait="10000"
removeAbandoned="true"
removeAbandonedTimeout="180"