java--整合druid
环境
1、spring boot 2.x以上
2、jdk1.8
准备工作
1、druid-spring-boot-starter
简介:
spring boot推出了一个druid的整合库,相比于原生的druid库来说,更加方便简洁
maven:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency>
2、mysql-connector-java
简介:
mysql数据库连接驱动库。druid可以连接多个数据库,但是,并没有臃肿的去集成所有所有数据库的连接驱动依赖库,所以仍需要我们手动引入对应数据库的依赖库
maven:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency>
配置文件
在配置文件添加datasource配置。请注意 application.yml或application.properties都是spring boot的配置文件,要么使用yml要么使用properties,不要为难spring也不要为难自己
application.properties
#datasource 配置 spring.datasource.druid.db-type=com.alibaba.druid.pool.DruidDataSource #mysql-connector-java6.0及以上使用com.mysql.cj.jdbc.Driver;5.0使用com.mysql.jdbc.Driver。这也对应这mysql的版本 spring.datasource.druid.driverClassName=com.mysql.cj.jdbc.Driver #连接地址 spring.datasource.druid.url=jdbc:mysql://localhost:3306/你的数据库名称?serverTimezone=UTC&allowMultiQueries=true&autoReconnect=true&characterEncoding=utf-8 #数据库连接账户 spring.datasource.druid.username=root #连接密码 spring.datasource.druid.password=root # 下面为连接池的补充设置,应用到上面所有数据源中 # 初始化大小,最小,最大 spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 # 配置获取连接等待超时的时间 spring.datasource.druid.max-wait=60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 spring.datasource.druid.time-between-eviction-runs-millis=60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 spring.datasource.druid.min-evictable-idle-time-millis=300000 spring.datasource.druid.validation-query=SELECT 1 FROM DUAL spring.datasource.druid.test-while-idle=true spring.datasource.druid.test-on-borrow=false spring.datasource.druid.test-on-return=false # 打开PSCache,并且指定每个连接上PSCache的大小 spring.datasource.druid.pool-prepared-statements=true spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 spring.datasource.druid.filter.commons-log.connection-logger-name=stat,wall,log4j spring.datasource.druid.filter.stat.log-slow-sql=true spring.datasource.druid.filter.stat.slow-sql-millis=2000 # 合并多个DruidDataSource的监控数据 spring.datasource.druid.use-global-data-source-stat=true
application.yml
spring: datasource: druid: db-type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/mall?serverTimezone=UTC& allowMultiQueries=true&autoReconnect=true&characterEncoding=utf-8 username: root password: root initial-size: 5 min-idle: 5 max-active: 20 max-wait: 60000 time-between-eviction-runs-millis: 60000 keep-alive-between-time-millis: 30000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 filter: commons-log: connection-logger-name: stat,wall.log4j stat: log-slow-sql: true slow-sql-millis: 2000 use-global-data-source-stat: true
添加配置类
在配置文件中添加响应的配置后,只是在spring boot容器内注入了一个DataSource对象的Bean,只能通过@Autowired去获取,而Autowird有一些使用限制,这个可以自己去百度,所以我一般这样使用
@Configuration public class DruidConf { public static DataSource ds; @Bean public DataSource dataSource() { if (ds == null) { ds = DruidDataSourceBuilder.create().build(); } return ds; } }
最后通过dataDataSource对象获取到connection(ds.getConnection),就可以愉快的使用了