druid的配置。

评论  共 81 条
21 楼 wenshao 2012-07-16 20:41
Java代码 
  1. Properties properties = new Properties();  
  2. properties.put("maxActive""100");  
  3. properties.put("maxIdle""30");  
  4. properties.put("maxWait""10000");  
  5. properties.put("url""jdbc:mock:");  
  6. properties.put("filters""stat");  
  7. properties.put("validationQuery""SELECT 1");  
  8. DruidDataSource dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);  


直接用Property作为参数传入不也是一样的么?

yunnysunny 写道
yunnysunny 写道
wenshao 写道
yunnysunny 写道
wenshao 写道
yunnysunny 写道
只能用spring配置连接参数吗?


支持JNDI配置:
http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2916633

直接调用:
https://github.com/AlibabaTech/druid/blob/master/src/test/java/com/alibaba/druid/bvt/pool/TestH2.java

能否支持像dbcp那样,传递一个Property对象来初始化datasource。类似这种形式:
BasicDataSource dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(Property p);
这样我配置一个properties文件后,初始化的时候读取配置文件数据到p变量后,就可以用了。

有的:com.alibaba.druid.pool.DruidDataSourceFactory.createDataSource(Map)

晕,用的数据结构竟然是Map,看来还得用Property转化一遍。

很显然用property更方便
Java代码 
  1. try {             
  2.              
  3.            InputStream input = new FileInputStream(configPath);  
  4.            if (input != null) {  
  5.             p.load(input);  
  6.                           
  7.             System.out.println("driverClassName is " + p.getProperty("driverClassName"));  
  8.             logger.info(p.getProperty("url"));  
  9.             logger.info(p.getProperty("username"));  
  10.             dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(p);  
  11.            } else {  
  12.             logger.fatal("获取数据库配置文件失败.");  
  13.            }  
  14.   
  15.        } catch (Exception e) {              
  16.         logger.fatal("初始化数据库失败:", e);             
  17.        }  

另外问一下,Druid有没有网络断线重新初始化datasource的功能。
20 楼 yunnysunny 2012-07-16 20:36
yunnysunny 写道
wenshao 写道
yunnysunny 写道
wenshao 写道
yunnysunny 写道
只能用spring配置连接参数吗?


支持JNDI配置:
http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2916633

直接调用:
https://github.com/AlibabaTech/druid/blob/master/src/test/java/com/alibaba/druid/bvt/pool/TestH2.java

能否支持像dbcp那样,传递一个Property对象来初始化datasource。类似这种形式:
BasicDataSource dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(Property p);
这样我配置一个properties文件后,初始化的时候读取配置文件数据到p变量后,就可以用了。

有的:com.alibaba.druid.pool.DruidDataSourceFactory.createDataSource(Map)

晕,用的数据结构竟然是Map,看来还得用Property转化一遍。

很显然用property更方便
Java代码 
  1. try {             
  2.              
  3.            InputStream input = new FileInputStream(configPath);  
  4.            if (input != null) {  
  5.             p.load(input);  
  6.                           
  7.             System.out.println("driverClassName is " + p.getProperty("driverClassName"));  
  8.             logger.info(p.getProperty("url"));  
  9.             logger.info(p.getProperty("username"));  
  10.             dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(p);  
  11.            } else {  
  12.             logger.fatal("获取数据库配置文件失败.");  
  13.            }  
  14.   
  15.        } catch (Exception e) {              
  16.         logger.fatal("初始化数据库失败:", e);             
  17.        }  

另外问一下,Druid有没有网络断线重新初始化datasource的功能。
19 楼 wenshao 2012-07-16 20:32
Property也是Map啊,可以直接作为参数传入

yunnysunny 写道
wenshao 写道
yunnysunny 写道
wenshao 写道
yunnysunny 写道
只能用spring配置连接参数吗?


支持JNDI配置:
http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2916633

直接调用:
https://github.com/AlibabaTech/druid/blob/master/src/test/java/com/alibaba/druid/bvt/pool/TestH2.java

能否支持像dbcp那样,传递一个Property对象来初始化datasource。类似这种形式:
BasicDataSource dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(Property p);
这样我配置一个properties文件后,初始化的时候读取配置文件数据到p变量后,就可以用了。

有的:com.alibaba.druid.pool.DruidDataSourceFactory.createDataSource(Map)

晕,用的数据结构竟然是Map,看来还得用Property转化一遍。

18 楼 yunnysunny 2012-07-16 20:30
wenshao 写道
yunnysunny 写道
wenshao 写道
yunnysunny 写道
只能用spring配置连接参数吗?


支持JNDI配置:
http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2916633

直接调用:
https://github.com/AlibabaTech/druid/blob/master/src/test/java/com/alibaba/druid/bvt/pool/TestH2.java

能否支持像dbcp那样,传递一个Property对象来初始化datasource。类似这种形式:
BasicDataSource dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(Property p);
这样我配置一个properties文件后,初始化的时候读取配置文件数据到p变量后,就可以用了。

有的:com.alibaba.druid.pool.DruidDataSourceFactory.createDataSource(Map)

晕,用的数据结构竟然是Map,看来还得用Property转化一遍。
17 楼 wenshao 2012-07-16 20:18
yunnysunny 写道
wenshao 写道
yunnysunny 写道
只能用spring配置连接参数吗?


支持JNDI配置:
http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2916633

直接调用:
https://github.com/AlibabaTech/druid/blob/master/src/test/java/com/alibaba/druid/bvt/pool/TestH2.java

能否支持像dbcp那样,传递一个Property对象来初始化datasource。类似这种形式:
BasicDataSource dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(Property p);
这样我配置一个properties文件后,初始化的时候读取配置文件数据到p变量后,就可以用了。

有的:com.alibaba.druid.pool.DruidDataSourceFactory.createDataSource(Map)
16 楼 yunnysunny 2012-07-16 20:10
wenshao 写道
yunnysunny 写道
只能用spring配置连接参数吗?


支持JNDI配置:
http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2916633

直接调用:
https://github.com/AlibabaTech/druid/blob/master/src/test/java/com/alibaba/druid/bvt/pool/TestH2.java

能否支持像dbcp那样,传递一个Property对象来初始化datasource。类似这种形式:
BasicDataSource dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(Property p);
这样我配置一个properties文件后,初始化的时候读取配置文件数据到p变量后,就可以用了。
15 楼 wenshao 2012-07-16 20:04
magic4u 写道
最好的...我觉得这个还是加一个之一吧。目前没有看到有除阿里之外的大规模部署范例。


阿里巴巴的大规模布署之后还不够么?   你能够找到比Druid更好的数据库连接池么?
14 楼 wenshao 2012-07-16 20:02
yunnysunny 写道
只能用spring配置连接参数吗?


支持JNDI配置:
http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2916633

直接调用:
https://github.com/AlibabaTech/druid/blob/master/src/test/java/com/alibaba/druid/bvt/pool/TestH2.java
13 楼 yunnysunny 2012-07-16 19:27
只能用spring配置连接参数吗?
12 楼 magic4u 2012-07-16 18:15
最好的...我觉得这个还是加一个之一吧。目前没有看到有除阿里之外的大规模部署范例。
11 楼 cutesunshineriver 2012-07-16 17:31
代码写得很好,能不能考虑加上中文注释。
10 楼 xjb19880523 2012-07-16 15:21
我这里 前几天 也是刚换用的这个之前在用dbcp 主要用的还是连接池的功能  效果不错
9 楼 youjianbo_han_87 2012-07-16 14:21
一直在关注这个项目。。。
8 楼 wenshao 2012-07-16 13:02
supercwg 写道
提供监控页面?能否提供一个可部署的java工程的?


这里有我fork springside4做的监控页面示例,https://github.com/wenshao/springside4。修改的内容在这两个commit中:
https://github.com/wenshao/springside4/commit/f261996b9ce2f5cccc38dfb8534afe47f17df821

https://github.com/wenshao/springside4/commit/6caa7a17b27e8e8225b540230331995a8056f939
7 楼 supercwg 2012-07-16 12:57
提供监控页面?能否提供一个可部署的java工程的?
6 楼 wenshao 2012-07-16 11:26
cjwkof 写道
不知道比起weblogic自带的连接池是否有明显优势?


Oracle PS Cache内存占用比weblogic自带连接池小,监控功能更强。
5 楼 wenshao 2012-07-16 11:24
hantsy 写道
GitHub AlibabaTech 就一个人?


其他人没有公开而已,目前有15个成员
4 楼 chairmanMao 2012-07-16 10:47
呵呵,nbility,
3 楼 chairmanMao 2012-07-16 10:44
2 楼 hantsy 2012-07-16 10:42
GitHub AlibabaTech 就一个人?
1 楼 cjwkof 2012-07-16 10:33
不知道比起weblogic自带的连接池是否有明显优势?
### Druid 数据库连接池配置教程 #### 添加 Maven/Gradle 依赖 为了在项目中使用 Druid 连接池,需先引入相应的依赖项。对于 Maven 用户来说,在 `pom.xml` 文件中加入如下片段即可完成依赖添加[^2]。 ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${最新版本号}</version> </dependency> ``` 而对于 Gradle 用户,则应在 build.gradle 中添加: ```groovy implementation 'com.alibaba:druid-spring-boot-starter:${最新版本号}' ``` #### 配置 application.properties 或 application.yml 接着是在项目的配置文件中定义具体的数据库连接属性以及 Druid 特有的设置选项。以下是部分常用参数及其解释[^5]。 ##### 使用 Properties 格式 ```properties spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password # 初始化大小,最小,最大 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # 获取连接等待超时时间 spring.datasource.maxWait=60000 # 超过时间限制是否回收 spring.datasource.timeBetweenEvictionRunsMillis=60000 spring.datasource.minEvictableIdleTimeMillis=300000 # 测试语句 spring.datasource.validationQuery=SELECT 1 FROM DUAL spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false # 打开PSCache,并指定每个连接上PSCache的大小 spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 # 属性类型是字符串,通过别名方式配置扩展插件,常用的插件有: # 监控统计用filter:stat 日志用filter:log4j 防御SQL注入filter:wall spring.datasource.filters=stat,wall,slf4j ``` ##### 使用 Yaml 格式 ```yaml spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC username: root password: password initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 filters: stat, wall, slf4j ``` 上述配置涵盖了从基本连接信息到高级功能启用等多个方面,能够满足大多数应用场景下的需求。 #### 性能优化建议 针对特定环境或业务特点,还可以进一步调整某些参数来达到更好的性能表现。例如适当增加初始连接数 (`initialSize`) 和活动连接上限 (`maxActive`) 来应对突发流量;缩短检测间隔(`timeBetweenEvictionRunsMillis`) 提升资源释放效率等[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值