测试spring框架使用c3p0连接池 连接mysql失败解决方法

“`
测试方法代码:package com.nie.spring.properties;

import java.sql.SQLException;

import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

public static void main(String[] args) throws SQLException {
    // TODO Auto-generated method stub
    ApplicationContext ctx = new ClassPathXmlApplicationContext("scope.xml");
    DataSource dataSource = (DataSource) ctx.getBean("dataSource");
    System.out.println(dataSource.getConnection());
}

}

    <!--spring配置文件scope.xml 处代码 使用外部化属性文件的属性 -->
    <property name="user" value="${jdbc.user}"></property>
    <property name="password" value="${jdbc.password}"></property>
    <property name="driverClass" value="${jdbc.driverClass}"></property>
    <property name="jdbcUrl"
        value="${jdbc.jdbcUrl}"></property>
</bean>


属性文件:
jdbc.user=root
jdbc.password=1230
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql:///book1


点击测试出现问题:这里写图片描述
问题分析:原因是找不到驱动,但是连接数据库的驱动步骤是常规操作。
查看mysql版本这里写图片描述
考虑:mysql的数据库连接驱动是否和mysql版本匹配
这里写图片描述
下载最新版本的mysql驱动

这里写图片描述
运行:

这里写图片描述
新问题出现分析:网络查阅资料后mysql的更新,mysql8.0 jdbc.driverClass=com.mysql.cj.jdbc.Driver 同时 MySQL在高版本需要指明是否进行SSL连接 useSSL=false 加上字符处理等 characterEncoding=utf-8&serverTimezone=UTC&useSSL=false

最终配置文件代码为:<!-- 使用外部化属性文件的属性 -->
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl"
value="${jdbc.jdbcUrl}?characterEncoding=utf-8&amp;serverTimezone=UTC&amp;useSSL=false"></property>
</bean>

属性文件:jdbc.user=root
jdbc.password=1230
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql:///book1

最后运行成功:这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42670375/article/details/82385902