jdbc链接数据库失败的问题

我的数据库是8.19 版本,然后驱动类的版本要下载高版本8.19版本的。然后重新buid path后,会出现这个问题This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

新的驱动程序类是'com.mysql.cj.jdbc.driver'。驱动程序通过SPI自动注册,通常不需要手动加载驱动程序类。

这时要把注册驱动语句Class.forName("com.mysql.jdbc.Driver");改成Class.forName("com.mysql.cj.jdbc.Driver");多加一个cj.

如果这一步做完,报的错误还是This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 原因可能就是之前用低版本的驱动类duid path后,没有删除干净,可以重新建立一个新项目,然后把上面的步骤再做一遍。简直跟玄学一样,一样的代码,一样的驱动类,第一次老项目里就是怎么都连接不上,一直报驱动类的问题的错误。然后新建一个项目,重新加载8.19版本的驱动类,就链接上来了。

最后是

Exception in thread “main” java.sql.SQLException: The server time zone value XXX异常

问题分析:这是由于mysql8.0以上版本默认的时区和本地时区不一致导致的,即时间区域时差问题
其默认的时区是UTC代表的是全球标准时间 ,但是我们使用的时间即本地时区是北京时区也就是东八区,领先UTC八个小时。

问题解决:可以在连接数据库的url后面加上以下语句
“?serverTimezone=GMT%2B8”
 

//1、注册驱动:把驱动类加载到内存,并且初始化这个类
				Class.forName("com.mysql.cj.jdbc.Driver");
				
				//2、连接数据库
				String url = "jdbc:mysql://localhost:3307/test?serverTimezone=GMT%2B8";
				Connection conn = DriverManager.getConnection(url, "root", "11234");
				//java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)  
				//解决这个问题的思路:查看主机名,用户名,密码
				System.out.println(conn.getClass());//获取运行时类型   class com.mysql.jdbc.Connection

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值