在跟着教程练习Druid基本使用的过程中遇到如下问题:
代码:
package cn.itcast.datasource.druid;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;
public class DruidDemo {
public static void main(String[] args) throws Exception {
//导入jar包
//定义配置文件
//加载配置文件
Properties pro=new Properties();
InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
//获取连接
Connection conn = ds.getConnection();
System.out.println(conn);
}
}
问题1:
错误信息:Unknown initial character set index ‘255’ received from server. Initial client character set can be forced via the ‘characterEncoding’ property.
原因:字符集设置出现问题
解决方法:在配置文件的url后加 ?useUnicode=true&characterEncoding=utf8 即可
参考:https://blog.csdn.net/txwtech/article/details/80787886
问题2:
错误信息:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
原因:未导入数据库驱动jar包
解决方法:由于一时找不到免费的驱动jar包,也打不开mysql官网,就复制了综合案例的jar包mysql-connector-java-5.1.18-bin.jar到libs目录下
问题3:
错误信息:Unexpected exception encountered during query.
解决方法:更换最新mysql-connector-java-5.1.48jar
参考:https://blog.csdn.net/qq_43611486/article/details/98471966
问题4:
错误信息:java.lang.ClassNotFoundException: “com.mysql.cj.jdbc.Driver” at java.net.URLClassLoader.findClass
解决方法:右键驱动jar包 Add As Library
问题5:
错误信息:could not create connection to database server.] with root cause
原因:mysql版本与jar包版本不同
解决方法:MySQL 8.0 以上版本驱动包版本 mysql-connector-java-8.0.16.jar。;com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。
参考:https://www.runoob.com/java/java-mysql-connect.html内含数据库驱动jar包的下载链接,谢谢菜鸟教程爸爸!
问题6:
错误信息:The server time zone value ‘�й���ʱ��’ is unrecognized or represents more than one time zo错误
原因:mysql识别时区出现错误,这是因为访问的url中没有指定时区为UTC
解决方法:在配置文件的url后加 &serverTimezone=UTC
到此程序可以运行,打印出了连接的对象,但是仍然报错:
二月 01, 2020 1:54:29 上午 com.alibaba.druid.pool.DruidDataSource error
严重: testWhileIdle is true, validationQuery not set
二月 01, 2020 1:54:30 上午 com.alibaba.druid.pool.DruidDataSource info
信息: {dataSource-1} inited
com.mysql.cj.jdbc.ConnectionImpl@3f200884
问题7:
错误信息:testWhileIdle is true, validationQuery not set
参考:https://www.cnblogs.com/leanfish/p/9593636.html
用到的快捷键:
1.添加异常:Alt+Enter
2.提取变量:Ctrl+Alt+V
3.psvm 主方法
4.sout 打印
日期:2020.2.1 2:00