看来您使用的是旧版本的 Jaybird(FirebirdSQL JDBC 驱动程序)。2.2 及以上版本实现 JDBC 4.0 规范,不需要Class.forName()
语法。
得益于 Mustang 中包含的 Java SE Service Provider 机制,Java 开发人员不再需要使用 Class.forName() 之类的代码显式加载 JDBC 驱动程序来注册 JDBC 驱动程序。DriverManager 类通过在调用 DriverManager.getConnection() 方法时自动定位合适的驱动程序来解决这个问题。
因此,升级您的 Jaybird JDBC 驱动程序(下面的链接)并简单地省略该Class.forName()
方法。它是遗留的,JDBC 驱动程序(JDBC 4.0 及更高版本)不需要它。
根据 Jaybird 文档,您应该在 POM 中使用以下内容:
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdkXX</artifactId>
<version>2.2.9</version>
- artifactId 取决于您的目标 Java 版本:jaybird-jdk18、jaybird-jdk17 或 jaybird-jdk16
http://www.firebirdsql.org/en/jdbc-driver/
http://www.onjava.com/2006/08/02/jjdbc-4-enhancements-in-java-se-6.html