C3P0连接MySQL数据库报错:A ResourcePool could not acquire a resource from its primary factory or source

1、查看安装的MySQL数据库版本
2、查看使用的mysql-connector-java版本
3、若1与2结果不一致,修改其中一项,使版本一致

注意:MySQL8.0以后连接配置与以前不一样
1、新版驱动包名称Class.forName("com.mysql.cj.jdbc.Driver");,使用以前的驱动包名称也可以访问
2、在URL中加上时区信息:serverTimezone=GMT即可解决问题,如果需要使用GMT+8中国时区,需要写成GMT%2B8
显示SSL连接,即:useSSL=false

	@Test
	public void testC3P0(){
		Connection connection = null;
		PreparedStatement pStat = null;
		ResultSet resultSet = null;
		//创建连接池对象
		ComboPooledDataSource pooledDataSource = new ComboPooledDataSource();
		try {
			//设置连接数据库的基本信息
			pooledDataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
			pooledDataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/jt_db?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
			pooledDataSource.setUser("root");
			pooledDataSource.setPassword("root");
			//从连接池中获取一个连接对象
			connection = pooledDataSource.getConnection();
			//3、获取传输器
			String s = "select * from account;";
			pStat = connection.prepareStatement(s);
			//4、利用传输器执行SQL语句,返回执行结果
			resultSet  = pStat.executeQuery();
			//5、处理执行结果
			while (resultSet.next()) {
				int id = resultSet.getInt("id");
				String name = resultSet.getString("name");
				double money = resultSet.getDouble("money");
				System.out.println("id:" + id + "\tname:" + name + "\tmoney:" + money);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			//6、释放资源
			JDBC.close(connection,pStat,resultSet);
		}
		System.out.println("------------------------------");
	}

参考文档
1、https://blog.csdn.net/qq_35180983/article/details/82184213
2、https://blog.csdn.net/syc000666/article/details/106078497

你可能感兴趣的:(软件使用及问题处理)