记录关于C3P0和MYSQL5.5/5.7的问题


什么是数据库连接池:

       用池来管理Connection,这可以重复使用Connection。有了池,所以我们就不用自己来创建Connection,而是通过池来获取Connection对象。
       当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给池。池就可以再利用这个Connection对象了。

       之前在学习JDBC的时候没有接触到C3P0,今天刚接触就出现了问题,由于老师上课用的版本是mysql5.5版本,而我本机的mysql是5.7版本,明明c3p0-config.xml配置一样,而我的测试类却获取不到连接,经过一番百度,找出了问题所在,并在此记录。

主要注意以下几个方面:
一、驱动文件

MYSQL5.5使用的驱动文件是 mysql-connector-java-5.1.47.jar
MYSQL5.7使用的驱动文件是 mysql-connector-java-8.0.11.jar

注意在WEB-INF/lib中根据相应的要求进行放置。不要重复放置多种版本,以防冲突。
二、连接方式

MYSQL5.5版本的数据库驱动为com.mysql.jdbc.Driver
MYSQL5.7版本的数据库驱动为com.mysql.cj.jdbc.Driver

c3p0-config.xml基本配置

    <!-- 连接mysql数据的基本的信息配置 -->
  
    <property name="driverClass">com.mysql.cj。jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/mvcproject?&amp;useSSL=false&amp;serverTimezone=UTC</property>
    <property name="user">root</property>
    <property name="password">root</property>
    
    <!--  若数据库中的连接数量不足的时候,向数据库申请的连接数量 -->
     <property name="acquireIncrement">5</property>
     <!--  初始化数据库连接池的数量 -->
    <property name="initialPoolSize">10</property>
    <!--  数据库连接池中最小的数据库连接数 -->
    <property name="minPoolSize">5</property>
    <!--  数据库连接池中最大的数据库连接数 -->
    <property name="maxPoolSize">100</property>

    <!--  C3P0数据库连接池可以维护的Statement的数量 -->
    <property name="maxStatements">2</property> 
    <!--  每个连接同时可以使用的Statement的数量 -->
    <property name="maxStatementsPerConnection">5</property>


注意c3p0-config.xml配置里面的字符是&使用的转义字符&emp;不用转义会报错。 当然也可以在jdbc.properties里面进行配置,那么就不需要转义了。
例(未测试):

 

在使用MySQL 5.7时,可以使用c3p0作为连接池。首先,在c3p0-config.xml文件中注意字符的转义,确保使用的是转义字符"&emp;" 而不是原始字符"&",否则可能会引发错误。另外,也可以在jdbc.properties文件中进行配置,这样就不需要进行字符转义了。 在创建数据库连接字符串时,可以使用以下格式:jdbc:mysql://localhost:3306/mvcproject?&useSSL=false&serverTimezone=UTC。这是一个典型的MySQL连接字符串,其中包括主机地址、端口号、数据库名称以及其他一些参数设置。 为了使用c3p0,需要将相关的jar包引入到项目中。具体包括mchange-commons-java-0.2.3.4.jar、mysql-connector-java-5.0.8-bin.jar和c3p0-0.9.2.1.jar。可以通过File – Project Structure… – Libraries来将这些jar包导入到项目中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [C3P0 mysql 5.7](https://blog.csdn.net/weixin_36452281/article/details/113380504)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [IDEA从零到精通(12)之用C3P0连接Mysql数据库](https://blog.csdn.net/dkm123456/article/details/121184496)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值