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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器