一、加载类“com.mysql.jdbc.Driver”
这已被弃用。新的驱动程序类是`com.mysql.cj.jdbc.Driver’ 驱动程序通过SPI自动注册,通常不需要手动加载驱动程序类。
解决方法:这个问题很简单按照它的提示把代码中com.mysql.jdbc.Driver改成com.mysql.cj.jdbc.Driver就可以了
修改前代码:
static final String JDBC_DRIVER =“com.mysql.jdbc.Driver”;
修改后代码:
static final String JDBC_DRIVER ="com.mysql.cj.jdbc.Driver";
二、Sat Jun 02 11:40:45 CST 2018 WARN:建议不建立服务器身份验证的SSL连接。
根据MySQL 5.5.45 +,5.6.26 +和5.7.6+的要求,如果未设置显式选项,则必须默认建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为’false’。您需要通过设置useSSL = false显式禁用SSL,或者设置useSSL = true并且为服务器证书验证提供信任库。
解决方法:
这是一个警告 ,即在原来的数据库名称后面添加:?useUnicode=true&characterEncoding=utf-8&useSSL=false
修改前代码:
static final String JDBC_DRIVER =“com.mysql.cj.jdbc.Driver”;
static final String DB_URL ="jdbc:mysql:// localhost:3306 / fffff";
修改后代码:
static final String JDBC_DRIVER =“com.mysql.cj.jdbc.Driver”;
static final String DB_URL ="jdbc:mysql:// localhost:3306 / fffff?useUnicode = true&characterEncoding = utf-8&useSSL = false";
三、java.sql.SQLException中:服务器时区值’??? EE×??±??’ 。
无法识别或代表多个时区如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值。
解决方法:
这是由于数据库和系统时区差异所造成的,在JDBC连接的URL后面加上serverTimezone = GMT即可解决问题,如果需要使用GMT + 8时区,需要写成GMT%2B8,否则会被解析为空。再一个解决办法就是使用低版本的MySQL jdbc驱动,
修改前代码:
static final String JDBC_DRIVER ="com.mysql.cj.jdbc.Driver";
static final String DB_URL ="jdbc:mysql:// localhost:3306 / runoob?useUnicode = true&characterEncoding = utf-8&useSSL = false”
修改后代码:
static final String JDBC_DRIVER ="com.mysql.cj.jdbc.Driver";
static final String DB_URL ="jdbc:mysql:// localhost:3306 / runoob?useUnicode = true&characterEncoding = utf-8&useSSL =false&serverTimezone = GMT";