-
Notifications
You must be signed in to change notification settings - Fork 8.6k
FAQ
English | 中文
Welcome everyone to use Druid, FAQ answers here, we want to help.
Druid is the best database connection pool in JAVA. Druid provides powerful monitoring and extended functionality.
-
released version download:
github downloads : https://github.com/alibaba/druid/downloads
maven central repository: http://central.maven.org/maven2/com/alibaba/druid/
Alibaba open source repository: http://code.alibabatech.com/mvn/releases/com/alibaba/druid/ -
snapshots versions
http://code.alibabatech.com/mvn/snapshots/com/alibaba/druid/
Driud is an open source project, hosting on github, source code repository: https://github.com/alibaba/druid
since 0.1.18, druid deploy to maven central repository, so you only need to add the dependency to the pom.xml, such as:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid-version}</version>
</dependency>
Druid monitoring feature is implementation by filter-chain, if you want turn on, config StatFilter, look here : https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter
built-in monitoring page is a Servlet, configuration see here : https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE
- Web related monitoring config
https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_%E9%85%8D%E7%BD%AEWebStatFilter - Spring related monitoring config
https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_Druid%E5%92%8CSpring%E5%85%B3%E8%81%94%E7%9B%91%E6%8E%A7%E9%85%8D%E7%BD%AE
Druid provides WallFilter, it is based on the SQL semantic analysis to defense SQL injection attacks, see here : https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE-wallfilter
different needs of different business scenarios, you can use our reference configuration, but it recommended that you carefully read the documentation to understand clearly do custom configuration.
Druid provides Log4jFilter/CommonsLogFilter/Slf4jFilter, see here : https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_LogFilter
Druid offers a variety of means to monitoring connection leaks, see here : https://github.com/alibaba/druid/wiki/%E8%BF%9E%E6%8E%A5%E6%B3%84%E6%BC%8F%E7%9B%91%E6%B5%8B
Connect to an Oracle database, other connection pool will exist the problem of excessive memory usage, Druid is the only connection pool to solve this problem. see here : http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=6951277
- A variety of connection pool against : http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=6951797
- comparison of various connection pool parameters: http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=6947005
- migration from DBCP : http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=6950500
ExceptionSorter is one of the outstanding features of JBoss DataSource, Druid has the same funtion of ExceptionSorter, but do not have to manually configure it take effect automatically. see here : http://code.alibabatech.com/wiki/display/Druid/ExceptionSorter
the maxIdle property for Druid compatible with DBCP, maxIdle is a confusing concept. the connection pool should only maxPoolSize and minPoolSize,druid retain only maxActive and minIdle, respectively the equivalent maxPoolSize and minPoolSize.
DruidDataSource support JNDI, see here : http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2916633
the concrete implementation of the class is this : com.alibaba.druid.pool.DruidDataSourceFactory, you can read the code to deep understanding.
Druid provides a completely smooth migration DBCP way.
-
- add druid-xxx.jar and druid-wrapper-x.x.x-jar to library
- add druid-xxx.jar and druid-wrapper-x.x.x-jar to library
-
- remove dbcp-xxx.jar and commons-pool.jar form WEB-INF/lib/
- remove dbcp-xxx.jar and commons-pool.jar form WEB-INF/lib/
-
- according to need add configuration, such as JVM startup parameters "-Ddruid.filters=stat", dynamic config druid filters
- according to need add configuration, such as JVM startup parameters "-Ddruid.filters=stat", dynamic config druid filters
In this usage, making Druid can be used in existing applications such as sonar, sonar is web application written in ruby, write dead DBCP, only through this method to replace.
see here : http://code.alibabatech.com/mvn/snapshots/com/alibaba/druid/
In StatFilter slow SQL execution logging configuration, see here : https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter
DBA does not want to directly write the password in the config file, Druid provide the features that encrypted database password. see here : https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter
Druid is an open source project, hosted on github.com, you can "pull request". see here : https://github.com/alibaba/druid/wiki/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E
(Welcome to join QQ Group: 240619787 for discuss and study Druid)
Use Druid Spring Boot Starter,Documentation:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
- add configuration properties
spring.datasource.druid.wall.config.multiStatementAllow=false
spring.datasource.druid.wall.config.truncateAllow=true
... other
- Use Druid Spring Boot Starter
DruidDataSourceBuilder
@Bean
@ConfigurationProperties("spring.datasource.druid.wall.config")
public WallConfig wallConfig(){
return new WallConfig();
}
@Bean
public WallFilter wallFilter(){
WallFilter filter = new WallFilter();
filter.setConfig(wallConfig());
filter.setDbType("mysql");
return filter;
}
@Bean
public DataSource dataSource(Environment env){
DruidDataSource dataSource = DruidDataSourceBuilder
.create()
.build(env,"spring.datasource.druid.");
List<Filter> filters = new ArrayList<>();
filters.add(wallFilter());
dataSource.setProxyFilters(filters);
return dataSource;
}