SpringBoot集成Druid连接池连接MySQL8.0.11


Posted in Java/Android onJuly 02, 2021
目录
  • 1.配置依赖
    • 1.1MySQL Connector/J依赖配置 maven
    • 1.2Druid依赖配置
  • 2.配置DataSource
    •  2.1创建配置类
    • 2.2注意事项

这篇博客简单介绍spring boot集成druid连接池的简单配置和注意事项
本次使用的是MySQL8.0.11版本
前提:一个已经搭建好的Spring Boot项目和可以使用的数据库
注意:MySQL8.0.X的配置和5.7.X有小差异,整体思路完全一样

 

1.配置依赖

依赖管理我们可以使用maven或者gradle
MySQL Connector/J版本选择:

SpringBoot集成Druid连接池连接MySQL8.0.11

注意:如果是MySQL5.X系列的话,使用8.0.X的驱动会有兼容性问题出现,请留意!

 

1.1MySQL Connector/J依赖配置 maven

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.11</version>
</dependency>

gradle

// https://mvnrepository.com/artifact/mysql/mysql-connector-java
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.11'

 

1.2Druid依赖配置

 maven

<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

####gradle

// https://mvnrepository.com/artifact/com.alibaba/druid
compile group: 'com.alibaba', name: 'druid', version: '1.1.10'

 

2.配置DataSource

这里我们使用Java Config。我在使用YAML配置的时候,发现代码提示不完整,这大大增加了出错的可能性,所以推荐使用Java Config。

 

 2.1创建配置类

@Configuration
public class Config {
    @Bean
    public DruidDataSource druidDataSource() {
        //Druid 数据源配置
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/work?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true");
        dataSource.setUsername("webuser");
        dataSource.setPassword("123456");
        //初始连接数(默认值0)
        dataSource.setInitialSize(8);
        //最小连接数(默认值0)
        dataSource.setMinIdle(8);
        //最大连接数(默认值8,注意"maxIdle"这个属性已经弃用)
        dataSource.setMaxActive(32);
        return dataSource;
    }
}

 

2.2注意事项

部分注释写在代码里面了,这里说两个注意事项
一个是DriverClassName
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错误)

更多配置,请参考Druid项目中的wiki,根据需求进行配置

SpringBoot集成Druid连接池连接MySQL8.0.11

到此这篇关于SpringBoot集成Druid连接池连接MySQL8.0.11的文章就介绍到这了,更多相关SpringBoot集成Druid连接池内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
JVM入门之类加载与字节码技术(类加载与类的加载器)
Jun 15 Java/Android
SpringCloud的JPA连接PostgreSql的教程
Jun 26 Java/Android
jackson json序列化实现首字母大写,第二个字母需小写
Jun 29 Java/Android
解析mybatis-plus中的resultMap简单使用
Nov 23 Java/Android
Java 超详细讲解IO操作字节流与字符流
Mar 25 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
Apr 03 Java/Android
Java 通过手写分布式雪花SnowFlake生成ID方法详解
Apr 07 Java/Android
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
Apr 13 Java/Android
Android 界面一键变灰 深色主题工具类
Apr 28 Java/Android
springcloud整合seata
May 20 Java/Android
Java中的Kafka为什么性能这么快及4大核心详析
Sep 23 Java/Android
Java使用httpRequest+Jsoup爬取红蓝球号码
使用Springboot实现健身房管理系统
Java Kafka 消费积压监控的示例代码
springboot临时文件存储目录配置方式
Jul 01 #Java/Android
Mybatis-plus在项目中的简单应用
Jul 01 #Java/Android
SpringBoot 拦截器妙用你真的了解吗
解决SpringBoot文件上传临时目录找不到的问题
You might like
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
List Installed Software Features
2007/06/11 Javascript
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
jquery自定义表格样式
2015/11/23 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
2017/05/22 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
Python 中的lambda函数介绍
2018/10/10 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
大学生应聘自荐信
2013/10/11 职场文书
毕业生求职简历的自我评价
2013/10/23 职场文书
优秀毕业生推荐信
2013/11/02 职场文书
外贸学院会计专业应届生求职信
2013/11/14 职场文书
创意婚礼策划方案
2014/05/18 职场文书
乳制品整治工作方案
2014/05/29 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
欠条样本
2015/07/03 职场文书