Druid数据源
- Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。Druid是一个开源项目,源码托管在github上,源代码仓库地址。同时每次Druid发布正式版本和快照的时候,都会把源码打包,可以从上面的下载地址中找到相关版本的源码。
DruidDataSource支持的数据库
数据库 | 支持状态 |
---|
mysql | 支持,大规模使用 |
oracle | 支持,大规模使用 |
sqlserver | 支持 |
postgres | 支持 |
db2 | 支持 |
h2 | 支持 |
derby | 支持 |
sqlite | 支持 |
sybase | 支持 |
Druid自动根据URL识别DriverClass
前缀 | DriverCLass |
---|
jdbc:odps | com.aliyun.odps.jdbc.OdpsDriver |
jdbc:derby | org.apache.derby.jdbc.EmbeddedDriver |
jdbc:mysql | com.mysql.jdbc.Driver |
jdbc:oracle | oracle.jdbc.driver.OracleDriver |
jdbc:microsoft | com.microsoft.jdbc.sqlserver.SQLServerDriver |
jdbc:sybase:Tds | com.sybase.jdbc2.jdbc.SybDriver |
jdbc:jtds | net.sourceforge.jtds.jdbc.Driver |
jdbc:postgresql | org.postgresql.Driver |
jdbc:fake | com.alibaba.druid.mock.MockDriver |
jdbc:mock | com.alibaba.druid.mock.MockDriver |
jdbc:hsqldb | org.hsqldb.jdbcDriver |
jdbc:db2 | COM.ibm.db2.jdbc.app.DB2Driver |
jdbc:sqlite | org.sqlite.JDBC |
jdbc:ingres | com.ingres.jdbc.IngresDriver |
jdbc:h2 | org.h2.Driver |
jdbc:mckoi | com.mckoi.JDBCDriver |
jdbc:cloudscape | COM.cloudscape.core.JDBCDriver |
jdbc:informix-sqli | com.informix.jdbc.IfxDriver |
jdbc:timesten | com.timesten.jdbc.TimesTenDriver |
jdbc:as400 | com.ibm.as400.access.AS400JDBCDriver |
jdbc:sapdb | com.sap.dbtech.jdbc.DriverSapDB |
jdbc:JSQLConnect | com.jnetdirect.jsql.JSQLDriver |
jdbc:JTurbo | com.newatlanta.jturbo.driver.Driver |
jdbc:firebirdsql | org.firebirdsql.jdbc.FBDriver |
jdbc:interbase | interbase.interclient.Driver |
jdbc:pointbase | com.pointbase.jdbc.jdbcUniversalDriver |
jdbc:edbc | ca.edbc.jdbc.EdbcDriver |
jdbc:mimer:multi1 | com.mimer.jdbc.Driver |
pom.xml引入数据源
- Druid 0.1.18 之后版本都发布到maven中央仓库中,所以只需要在项目的pom.xml中加上dependency就可以了。例如:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid-version}</version>
</dependency>
application.yml中写入需要配置的属性
spring:
datasource:
url: jdbc:mysql://localhost:3306/java?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
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
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
写配置类
@Configuration
public class DatasourceConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DruidDataSource dataSource(){
return new DruidDataSource();
}
}