0
点赞
收藏
分享

微信扫一扫

springboot接入druid数据源(不含监控)

1、安装3个依赖:spring-jpa、mysql驱动(注意版本,这里使用8.0)、durid

 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>


2、yml配置

spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/oa_yunxiao?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root

druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/oa_yunxiao?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
initial-size: 3
max-active: 10
min-idle: 10
max-wait: 60000
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
test-while-idle: true
validationQuery: SELECT 1
test-on-borrow: false
test-on-return: false
stat-view-servlet:
enabled: false
url-pattern: /druid/*
#login-username: admin
#login-password: admin
reset-enable: true

注:很多教程都使用spring.datasource.durid.**下面的配置,我没有使用成功。默认DataSource使用的是spring.datasource.**下面的配置,所以,url、username等也复制一份到datasource下。

mysql驱动8.0后,driver-class-name:改为:com.mysql.cj.jdbc.Driver

3、不再编写DataSource的bean

4、注意事项

8.0.11驱动(应该是8版本开始),弃用了原来的方法,我们直接去看源码也能找到。
com.mysql.jdbc.Driver里面有两句话

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'
The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

意思是加载类“com.mysql.jdbc.Driver”。 这已被弃用。 新的驱动程序类是`com.mysql.cj.jdbc.Driver' 所以注意一个属性的设置“setDriverClassName” 另一个注意事项是URL的设置,有4个参数需要注意一下

  • characterEncoding=utf8 (字符编码)
  • useSSL=false (发现是8版本开始才需要添加,5.X印象中不需要,添加这个参数可能和MySQL的SSL连接设置有关系)
  • serverTimezone=UTC (当连接数据库时候,出现Time Zone错误时添加此参数,我貌似是使用Druid连接池时才出现的这个问题)
  • allowPublicKeyRetrieval=true (使用root账户登陆没问题,使用普通账户会提示Public Key Retrieval错误)




举报

相关推荐

0 条评论