Druid的配置和回收

JDefens 2015-05-13 07:12:18
最近一个项目用了数据库连接池,在网上了解后选择了阿里的Druid,整个项目已经完成,不过对Druid的使用的正确性还是很疑虑,尤其是数据库连接的回收,下面是我的代码,请大神指点:
配置文件:
#我用的是mysql数据库
url=jdbc:mysql://127.0.0.1:3306/db_name
username=dba_name
password=dba_pwd
filters=stat
#最大连接数量
maxActive=500
#初始化连接数量
initialSize=50
#超时等待时间以毫秒为单位
maxWait=60000
#最小空闲连接
minIdle=1
#校验连接池中限制时间超过minEvictableIdleTimeMillis的连接对象
timeBetweenEvictionRunsMillis=3000
#连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位毫秒
minEvictableIdleTimeMillis=300000
#SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前
validationQuery=SELECT now();
#指明连接是否被空闲连接回收器(如果有)进行检验.
#如果检测失败,则连接将被从池中去除.
testWhileIdle=true
#指明是否在从池中取出连接前进行检验,如果检验失败,
#则从池中去除连接并尝试取出另一个.
testOnBorrow=false
#指明是否在归还到池中前进行检验
testOnReturn=false
#poolPreparedStatements=true
maxPoolPreparedStatementPerConnectionSize=20

初始化连接:
import java.io.InputStream;
import java.util.Properties;
import java.util.Set;

import javax.activation.DataSource;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

public class DataBasePoolUtils {

private static DruidDataSource dds = null;
static{
try {
InputStream in = DataBasePoolUtils.class.getClassLoader().getResourceAsStream("/dbconfig.properties");
Properties p = new Properties();
p.load(in);
dds = (DruidDataSource) DruidDataSourceFactory
.createDataSource(p);
} catch (Exception e) {
e.printStackTrace();
}
}

public static DruidDataSource getDruidDataSource() {

System.out.println("当前正在使用的连接个数 :" + dds.getActiveCount());
System.out.println("获取的DataBaseSiurce对象" + dds);
return dds;
}

}

在程序中的使用与回收:
//获取连接
Connection con = DataBasePoolUtils.getDruidDataSource().getConnection();

//使用后释放连接
//获取连接
Connection con = DataBasePoolUtils.getDruidDataSource().getConnection();

//使用后释放连接
if(con != null){
con.close();
int a = DataBasePoolUtils.getDruidDataSource().removeAbandoned();
}

我的想求证的问题:由于网上相对应解决我的问题的资料比较少,所以用的很不踏实,上来问问:
1、数据库连接的配置有没有需要优化的地方;

2、数据库连接初始化的方式有没有问题;

3、连接的释放是否存在问题。

在线等。。。。。求帮助
...全文
1521 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
西北地的风 2017-09-04
  • 打赏
  • 举报
回复
maxActive=500, 这个设置是不是有点太大了? 这样设置,服务器支持开这么大的线程数吗?

8,028

社区成员

发帖
与我相关
我的任务
社区描述
高性能数据库开发
社区管理员
  • 高性能数据库开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧