测试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&serverTimezone=UTC&useSSL=false"></property>
</bean>
属性文件:jdbc.user=root
jdbc.password=1230
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql:///book1
最后运行成功:
上一篇: MySQL 连接
下一篇: Mysql学习笔记2-内连接和外连接