最近在学习spring框架,但是在学到JdbcTemplate时连接数据库一直报错,百度谷歌各种查找都能没有解决问题,简直要癫狂,报错信息如下:

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:390)

at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:534)

at cn.itcast.a_jdbctemplate.Demo.fun1(Demo.java:38)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)

at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)

at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)

at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)

at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)

at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:254)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)

at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)

at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)

at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)

at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!

at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)

at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)

at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)

at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)

... 32 more

Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.

at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)

at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)

at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)

at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)

... 35 more

最后的原因是我使用的数据库是Mysql8,太新了,相对以前我使用的Mysql5需要在url参数上添加一些参数,(吐血。。。。。),调了三天,期间换了IDE,MySQL等等,最后解决方法是把url换成这样:

jdbc:mysql:///spring?useSSL=false&serverTimezone=UTC&characterEncoding=utf8

重点是设置:useSSL=false

还有一点,最新的mysql驱动类应当是:com.mysql.cj.jdbc.Driver,以前的 com.mysql.cj.jdbc.Driver提示被废弃了。

最后完整的测试代码供君借鉴:

@Test

public void test05() throws Exception {

// 创建数据源

ComboPooledDataSource dataSource = new ComboPooledDataSource();

//设置连接相关参数

dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");

dataSource.setJdbcUrl("jdbc:mysql:///spring?useSSL=false&serverTimezone=UTC&characterEncoding=utf8");

dataSource.setUser("root");

dataSource.setPassword("123456");

//创建模板对象

JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

//测试相关代码是否执行

System.out.println("Hello");

String sql = "insert into jdbc_template values(null,'Nick') ";

jdbcTemplate.update(sql);

System.out.println("!!!!!!!!!!!OK!!!!!!!!!!!!!!!!");

}

数据库创建代码:

CREATE DATABASE spring;

USE spring;

CREATE TABLE jdbc_template(

id INT AUTO_INCREMENT PRIMARY KEY,

NAME VARCHAR(255) NOT NULL

);

INSERT INTO jdbc_template VALUES(NULL,'rose') ;

SELECT * FROM jdbc_template;

spring连接mysql出现问题_使用spring连接mysql数据库出错相关推荐

  1. jira mysql 启动 失败_重启机器导致mysql启动失败

    一.问题 二.常见解决方案 网上的解决方法大致为 ①空间不足(df -h 查看) ②权限不足(/var/lib文件夹)chown -R mysql:mysql /vdb1/lib/ ③修改my.cnf ...

  2. linux mysql内网_在Linux中mysql的一些基本操作

    在Linux中mysql的一些基本操作 下面介绍一下 一.关于在Linux中mysql的一些基本操作 1.进入mysql "mysql -uroot -p",会提示输入密码,输入密 ...

  3. php mysql 云虚拟机_虚拟机+apache+php+mysql 环境安装配置

    虚拟机的安装:直接下一步即可,注意修改路径. 安装完成后新建虚拟机,直接下一步.如果选择镜像文件后出现错误,可以试着去修改电脑bios中的虚拟化设置,改为enable,如下图: apache安装: 1 ...

  4. mysql架构组成_第 2 章 MySQL 架构组成

    麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...

  5. mysql第二章_第二章 初识MySQL

    1.MySQL简介 MySQL的优势(适用于中小企业,最重要免费) (1)运行速度快 (2)使用成本低 (3)可移植强 (4)使用用户广 my.ini:记录MySQL配置信息,可修改配置内容,如端口号 ...

  6. mysql二进制格式_二进制格式安装 MySQL

    二进制格式安装 MySQL 什么是通用二进制格式? 已经编译进行过编译的软件包, 下载到本机直接解压到特定的目录下就可以使用的格式. 1. 查询本地是否安装 mysql 数据库相关的软件包 (卸载之) ...

  7. mysql 多进程配置_基于mysql_multi实现MySQL多实例多进程配置

    环境设置 一台服务器配置IP为:192.168.200.111 主机名为:localhost 实验初始配置:关闭防火墙与selinux systemctl stop firewalld iptable ...

  8. doctor mysql数据导入_线上环境mysql主从同步的搭建过程

    之前搭建过一套主从同步的mysql集群,但是是基于新数据库,而这次线上环境要升级成主从同步的集群,记录一下升级过程和中间遇到的各种问题. 由于是直接对线上数据库进行修改,因此要保证对线上环境造成尽量小 ...

  9. mysql cnf参数_系统运维|MySQL my.cnf参数配置优化详解

    本配置文件针对Dell R710,双至强E5620.16G内存的硬件配置.CentOS 5.6 64位系统,MySQL 5.5.x 稳定版.适用于日IP 50-100w,PV 100-300w的站点, ...

最新文章

  1. web前端入门学习 css(8)(新增语义化标签、video/audio、新增input类型、新增表单属性、属性选择器、结构伪类选择器、伪元素选择器、css3盒子模型、模糊、calc函数、过渡
  2. ubuntu 12.04 php mysql_Ubuntu 12.04下LAMP安装配置
  3. [转] MySQL 查询表数据大小的总结
  4. RFID 是什么意思
  5. Python argparse模块详解
  6. Educational Codeforces Round 23 F. MEX Queries(线段树)
  7. Npm(包管理工具)
  8. c#后台如何导出excel到本地_C# 导出 Excel 的各种方法总结
  9. 中国环境统计年鉴 1998-2021年
  10. mGBA-0.9.2 免费开源的gba模拟器
  11. 破解各类加密文件密码
  12. 再看2019大前端技术趋势,Web OS概念正落地
  13. steam使用技巧2
  14. bypassing waf's in sql injection
  15. Docker的学习与使用
  16. java代码如何整合_Java如何合并两个PPT文档?
  17. 【学习笔记】NLP之影评情感分类
  18. 云目录(DaaS )快速入门
  19. 从三室心脏MRI影像检测主动脉瓣病变
  20. 操作系统作业:向内核中添加一个系统调用

热门文章

  1. qt如何做到实时显示数据_Python 如何实时绘制数据
  2. java整数四则运算课设_用面向对象方法设计实现整数的四则运算(java)
  3. mx250 计算能力_熟悉的刀法:英伟达 MX 250 也有 25W 和 10W 两个版本
  4. MySQL内连接方法_Mysql常用的几种join连接方式
  5. pb界面框架开发_CATIA CAA二次开发草图界面框架类:CATSketcherCommands
  6. google提供的adb工具包_开源化学信息学工具包(Open Access Cheminformatics Toolkits)
  7. python爬虫怎么挣钱_python爬虫19 | 爬虫遇到需要的登录的网站怎么办?用这3招轻松搞定!...
  8. 2020,Python 已死?
  9. 值得一看的PCB接地设计规范!
  10. 如何学STM32 —— 十年经验教你如何学习嵌入式系统