当前位置:   article > 正文

解决:Loading class `com.mysql.jdbc.Driver‘. This is deprecated._hive启动loading class `com.mysql.jdbc.driver'. this

hive启动loading class `com.mysql.jdbc.driver'. this is deprecated. 一直卡在

好的,根据你的要求,我将提供解决“Loading class com.mysql.jdbc.Driver. This is deprecated.”问题的方法。这个问题的出现是因为你正在使用已经被弃用的 JDBC 驱动类来连接 MySQL 数据库。在新版本的 JDBC 中,com.mysql.jdbc.Driver 已经被 com.mysql.cj.jdbc.Driver 取代。

首先,要解决这个问题,你需要更新你的 JDBC 驱动。这可以通过更新你的项目依赖来完成。如果你在 Maven 项目中遇到这个问题,你可以在你的 pom.xml 文件中找到 MySQL Connector/J 的依赖,并将其版本更新到最新版本。例如:

  1. <dependency>
  2. <groupId>mysql</groupId>
  3. <artifactId>mysql-connector-java</artifactId>
  4. <version>8.0.23</version>
  5. </dependency>

然后,你需要在代码中将驱动类名从 com.mysql.jdbc.Driver 更改为 com.mysql.cj.jdbc.Driver。例如,如果你在 Java 代码中加载驱动,你需要将这行代码:

Class.forName("com.mysql.jdbc.Driver");

更改为:

Class.forName("com.mysql.cj.jdbc.Driver");

但是,从 JDBC 4.0(Java 6)开始,Java 提供了 Service Provider Mechanism,可以自动检测和加载 JDBC 驱动,所以你实际上不需要显式加载驱动。

最后,你可能还需要更新你的 JDBC URL,因为新的驱动可能不支持旧的 URL 格式。新的 JDBC URL 格式如下:

jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

其中,useUnicode=true 表示使用 Unicode 字符集,useJDBCCompliantTimezoneShift=true 和 useLegacyDatetimeCode=false 是为了处理时间戳问题,serverTimezone=UTC 是设置服务器时区为 UTC。

通过以上步骤,你应该可以解决 Loading class com.mysql.jdbc.Driver. This is deprecated. 的问题。如果你还遇到其他问题,你可能需要检查你的数据库连接代码,或者查看 MySQL Connector/J 的官方文档,以获取更详细的信息和帮助。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/812390
推荐阅读
相关标签
  

闽ICP备14008679号