no_russion 2019-11-18 11:12 采纳率: 33.3%
浏览 559

c3p0连接池的无法获得连接对象,按照视频里添加里驱动程序仍然显示java.sql.SQLException: No suitable driver

图片说明

我的服务器版本是8.0.12的,驱动jar包官网只能下在8.0.18的但是听说好像是向下兼容的
c3po的配置文件

<?xml version="1.0" encoding="utf-8"?>
<c3p0-config>
  <default-config>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
    <property name="user">root</property>
    <property name="password">123456</property>

    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">10</property>
    <property name="checkoutTimeout">3000</property>
  </default-config>

  <named-config name="otherc3p0">
    <property name="user">root</property>
    <property name="password">123456</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <!-- 如果池中数据连接不够时一次增长多少个 -->
    <property name="acquireIncrement">5</property>
    <!-- 初始化数据库连接池时连接的数量 -->
    <property name="initialPoolSize">20</property>
    <!-- 数据库连接池中的最大的数据库连接数 -->
    <property name="maxPoolSize">25</property>
    <!-- 数据库连接池中的最小的数据库连接数 -->
    <property name="minPoolSize">5</property>
    <property name="checkoutTimeout">3000</property>
  </named-config>
</c3p0-config>

主程序

package cn.HSY;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

public class DataSoure01
{
    public static void main(String[] args) throws SQLException
    {
        DataSource dataSource=new ComboPooledDataSource();
        Connection connection=dataSource.getConnection();
        System.out.println(connection);
    }
}


  • 写回答

1条回答

  • 憧憬blog 2023-03-15 05:02
    关注

    根据你提供的配置文件和代码,可以看出可能存在以下问题:

    1. 驱动未加载:虽然配置文件中设置了驱动为com.mysql.jdbc.Driver,但是需要确保对应的驱动jar包已经被加载到当前项目中。可以在代码中使用Class.forName("com.mysql.jdbc.Driver")加载驱动,或者使用maven等工具自动加载。

    2. 配置文件未读取:在创建ComboPooledDataSource对象时,需要指定配置文件的路径。如果未指定,默认会读取c3p0-config.xml,如果配置文件不在默认路径下,则需要使用以下方式加载配置文件:

      ComboPooledDataSource dataSource = new ComboPooledDataSource("otherc3p0"); // 指定使用named-config中的配置
      
    3. 数据库连接字符串错误:如果数据库连接字符串不正确,也会导致无法获取连接对象。请确保数据库相关信息正确,如:地址、端口、数据库名称、用户名、密码等。

    综上,如果以上方法均无法解决问题,建议检查c3p0版本与MySQL服务端版本的兼容性,或者尝试使用其他的连接池。

    评论

报告相同问题?

悬赏问题

  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式