gpt4 book ai didi

java - 使用 Maven 在 Java 8 中找不到适合 jdbc 的驱动程序

转载 作者:行者123 更新时间:2023-11-29 06:56:20 26 4
gpt4 key购买 nike

我有一个使用 JDBC 和 FirebirdSQL 以及 Java 8 的 Maven 控制台应用程序,根据规范,不再需要添加类注册,所以 Class.forName("org.firebirdsql.jdbc. FBDriver"); 被注释,但是当我运行项目时我得到错误:No suitable driver found for jdbc:firebirdsql://localhost/database,但是如果我取消注释行它工作正常。

奇怪的是,如果我使用一个简单的控制台项目而不使用 Maven,它可以按照规范所说的注释行工作,所以问题是:是否有一种方法可以使用 Maven 来注释行类(class)注册?

最佳答案

看来您使用的是旧版本的 Jaybird(FirebirdSQL JDBC 驱动程序)。 2.2 及以上版本实现了 JDBC 4.0 规范,不需要 Class.forName() 语法。

Thanks to the Java SE Service Provider mechanism included in Mustang, Java developers no longer need to explicitly load JDBC drivers using code like Class.forName() to register a JDBC driver. The DriverManager class takes care of this by automatically locating a suitable driver when the DriverManager.getConnection() method is called.

因此,升级您的 Jaybird JDBC 驱动程序(下面的链接)并简单地省略 Class.forName() 方法。它是遗留的,JDBC 驱动程序(JDBC 4.0 及更高版本)不需要它。

根据 Jaybird 文档,您应该在 POM 中使用以下内容:

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>2.2.9</version>
  • The artifactId depends on your target Java version: jaybird-jdk18, jaybird-jdk17, or jaybird-jdk16

http://www.firebirdsql.org/en/jdbc-driver/

http://www.onjava.com/2006/08/02/jjdbc-4-enhancements-in-java-se-6.html

关于java - 使用 Maven 在 Java 8 中找不到适合 jdbc 的驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33397889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com