>>>跳过BB,空降注释<<<
前言
大家好呀,我是 白墨,一个酷爱学习与划水的矛盾体。
前两天在应用C3P0连接池时遇到问题,运行测试用的DBUTlis类抛出了异样,可耽搁了我好些工夫!记录一下过错通过。
问题呈现
异样如下:
java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
我的项目配置如下:
首先是测试用的DBUTil类:
public class DBUtil { static DataSource ds = new ComboPooledDataSource(); public static Connection getConn() throws SQLException { return ds.getConnection(); } public static DataSource getDataSource() { return ds; } public static void main(String[] args) { try { System.out.println(getConn()); } catch (SQLException e) { e.printStackTrace(); } }}
而后是jar包:
解决办法
咱们先不论下面那行报错的内容了,全副都查看一遍。==能够先看4、5条。==
- 查看DBUTil的代码,尽管有点冗余,然而没有谬误,能达到测试连贯胜利与否的目标。
- 查看xml配置文件的名字是否有错,以及是否与lib包同级。
名字为“c3p0-config.xml”,且都在src目录下一级,没有问题。
- 查看jar包是否导入。
- 查看mysql连贯java的jar的版本与数据库的版本是否统一。重点来了!
登录数据库查看数据库版本:mysql -u root -p
- 查看xml文件中的配置。查看后发现方框中的内容不适用于mysql8.0,须要批改。
框起来的两行批改后如下:
<property name="driverClass">com.mysql.cj.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/t2?useSSL=false&serverTimezone=UTC</property>
至此功败垂成,胜利连贯数据库。特别感谢这篇博客给我的帮忙!
论断
- 数据库驱动jar包要与数据库版本绝对应;
- MySQL8.0以上的版本,URL连贯须要增加时区参数。
- 8.0以上的驱动,驱动类抉择时两头多了个
cj
,即com.mysql.cj.jdbc.Driver
好啦,本文到此结束!点个关注吧?点个关注吧?点个关注吧~
在公众号【白墨是个程序猿】回复【材料】获取我多年收集的各种教程、软件、电子书资源~ (
珍藏了=学会了)