当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2023-02-04
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 / depe

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错误)

网友评论