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 相关文章推荐
Java用自带的Image IO给图片添加水印
Jun 15 Java/Android
浅谈@Value和@Bean的执行顺序问题
Jun 16 Java/Android
Java并发编程之Executor接口的使用
Jun 21 Java/Android
Java8中Stream的一些神操作
Nov 02 Java/Android
Java异常处理try catch的基本用法
Dec 06 Java/Android
Java字符串逆序方法详情
Mar 21 Java/Android
Java中API的使用方法详情
Apr 06 Java/Android
SpringCloud Function SpEL注入漏洞分析及环境搭建
Apr 08 Java/Android
Java实现扫雷游戏详细代码讲解
May 25 Java/Android
Android Canvas绘制文字横纵向对齐
Jun 05 Java/Android
spring 项目实现限流方法示例
Jul 15 Java/Android
向Spring IOC 容器动态注册bean实现方式
Jul 15 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/11/05 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
Sea.JS知识总结
2016/05/05 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
Python 文件处理注意事项总结
2017/04/10 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
Python中顺序表原理与实现方法详解
2019/12/03 Python
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
应聘自荐书
2013/10/08 职场文书
工商治理实习生的自我评价
2014/01/15 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
物业工程部岗位职责
2015/02/11 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS