作者:十一 | 来源:互联网 | 2023-08-07 12:28
问题:c3p0数据库连接池的jar包版本问题
刚开始学习连接池,对着课本上的例子写出代码,如果运行出现异常或者出现错误,就按照我步骤测试下!
首先查看自己mysql的版本
网上的视频,大部分都是mysql5.0版本,而我们下载的mysql有些却是8.0.x的版本,本文只针对mysql8.0.x的版本,mysql5.0.x的版本可以参考
平台:eclipse mysql8.0.11
首先在项目的webcontent->web-inf->lib包中导入这三个jar包这些都可以在官网下载的
注意下载的 c3p0 jar包要与mchange-commons-java jar包和mysql-connector-java 驱动jar包以及你的mysql版本一致,不一致会报错,我这几个jar包是可以参考的.
然后再src文件下创建一个c3p0-config.xml文件
c3p0-config.xml:
com.mysql.cj.jdbc.Driver
jdbc:mysql://localhost:3306/mysql?useSSL=false&serverTimezOne=UTC
root
5
10
3000
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/mysql
root
5
8
1000
这里要注意的是:在此处要注意版本的不同的差异,如果时mysql 5.x 则在配置文件中
写 jdbc:mysql://localhost:3306/mysql?useSSL=false
如果是mysql 8.0版本之后,jdbc:mysql://localhost:3306/mysql?useSSL=false&serverTimezon
当然注册驱动的时候也要注意mysql5.x之前
注册驱动:com.mysql.jdbc.Driver
mysql8.x之后就为:com.mysql.cj.jdbc.Driver
完成以上操作就可以来测试啦:
创建一个c3p0Dem01类:
package cn.itcast.c3p0;
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.tomcat.jdbc.pool.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class c3p0Demo01 {
public static void main(String[] args) throws SQLException {
//创建数据库连接池对象
javax.sql.DataSource com = new ComboPooledDataSource();
//获取连接对象
Connection cOnn= com.getConnection();
System.out.println(conn);
}
}
运行一下:
红色的为一些日志,现在不用管,可以看到连接的对象被打印出来了
原因分析:
原因:版本问题 mysql 8.x的版本必须要与mysql8.x的驱动jar包给对应
并且很重要的一点就是mysql8.0.x版本的驱动jar包必须要与jdk1.8及以上版本匹配才可以使用
这样在以后用c3p0连接池的时候就不会出现软件问题了~
我也是刚开始学习数据库连接池,遇到了这些问题,在网上查了一堆资料,找到的解决方法.如果有些不完善的地方,多多包涵~~
帮你解决了问题的话,点个赞吧!谢谢啦