问题描述
在运用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
问题完美解决!
版权声明:程序员胖胖胖虎阿 发表于 2022年10月9日 上午11:32。
转载请注明:Connections could not be acquired from the underlying database异常,已解决。 | 胖虎的工具箱-编程导航
转载请注明:Connections could not be acquired from the underlying database异常,已解决。 | 胖虎的工具箱-编程导航
相关文章
暂无评论...