package com.lxkj.bass.query.getDmsData.dao.impl.jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import com.jolbox.bonecp.BoneCP;
import com.jolbox.bonecp.BoneCPConfig;
public class BoneCPDataSource {
private static BoneCP connectionPool = null;
private static Logger log = Logger.getLogger(EmuDmsDateJdbcDaoImpl.class);
public static void init() {
try {
// load the database driver (make sure this is in your classpath!)
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (Exception e) {
e.printStackTrace();
return;
}
try {
// setup the connection pool
BoneCPConfig config = new BoneCPConfig();
config.setJdbcUrl("jdbc:oracle:thin:@127.0.0.1:1521:sid"); // jdbc url specific to your database, eg jdbc:mysql://127.0.0.1/yourdb
config.setUsername("user");
config.setPassword("password");
//设置每个分区中的最大连接数 30
config.setMaxConnectionsPerPartition(50);
//设置每个分区中的最小连接数 10
config.setMinConnectionsPerPartition(10);
//当连接池中的连接耗尽的时候 BoneCP一次同时获取的连接数
config.setAcquireIncrement(5);
//连接释放处理
config.setReleaseHelperThreads(3);
//设置分区 分区数为3
config.setPartitionCount(3);
//设置配置参数
connectionPool = new BoneCP(config);
} catch (Exception ex) {
log.error("初始化连接池异常");
}
}
public static Connection conn() {
Connection connection = null;
try {
if (connectionPool == null) {
init();
}
// getconnection
connection = connectionPool.getConnection();
} catch (SQLException ex) {
log.error("创建连接异常");
conClose(null,null,connection);
release();
init();
}
return connection;
}
public static void release() {
try {
if (connectionPool != null) {
connectionPool.close();
}
} catch (Exception ex) {
log.error("关闭连接池异常");
}
}
public static void conClose(ResultSet rs,PreparedStatement ppsm,Connection conn){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
log.error("关闭rs异常"+e.toString());
}
}
if(ppsm!=null){
try {
ppsm.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
log.error("关闭ppsm异常"+e.toString());
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
log.error("关闭conn异常"+e.toString());
}
}
}
}
评论25
最新资源