irpas技术客

Connections could not be acquired from the underlying database异常,已解决。_杰杰不会hello

irpas 3333

问题描述

在运用JDBC连接数据库时,用的是C3P0数据源,出现Connections could not be acquired from the underlying database!这个异常

话不多说,先上代码

public class C3P0Test { @Test //测试JDBC模板 public void test1() throws PropertyVetoException { //设置数据源 ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setDriverClass("com.mysql.cj.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3308/db01"); dataSource.setUser("root"); dataSource.setPassword("lyj20010327"); JdbcTemplate jdbcTemplate = new JdbcTemplate(); //设置数据源 知道数据源在哪 jdbcTemplate.setDataSource(dataSource); //执行操作 int data = jdbcTemplate.update("insert into dept value(?,?,?)","10000","Asdnasc","db01"); System.out.println(data); } }
原因分析:

很多原因都会使连接数据库出错,我列出以下几个可能出现的原因

驱动Jar包版本与注册驱动的类不匹配。数据库连接地址有误。数据库账户密码是否输入正确。数据库,表,字段是否对应。项目是否引入驱动包。
解决方案:

对应的解决方案:

一.驱动包与注册驱动类的匹配关系,一般是5版本与8版本 5版本的驱动包:注册驱动类为 com.mysql.jdbc.Driver。

8版本的驱动包:注册驱动类为 com.mysql.cj.jdbc.Driver。

二.时区配置问题,一般存在于8版本的驱动包

????????如果你是8版本的驱动包,连接数据库时需要配置一个时区,在路径url后面加上?serverTimezone=GMT

问题完美解决!


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #connections #could #not #be #acquired #from #The #underlying