我在使用 Maven 和 H2 数据库在 JavaFX 中制作简单的 CRUD 应用程序时遇到了一些问题。我已经创建了一个数据库(默认情况下 .db 文件位于用户方向),但在将我的 Java 项目与该文件连接时遇到问题。我的数据库文件 (data.mv.db) 位于默认目录中,因此 JBDC 的 URL 绝对正确。
看起来 DBConnection 类没有看到我的 .db 文件,我不知道为什么。
当我运行 DBConnection 类 IDE 时抛出 SQLException:
java.sql.SQLException: No suitable driver found for jdbc:h2:~/data
这是我的 DBConnection 类代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
public static void main(String[] args) {
String jdbcURL = "jdbc:h2:~/data";
String username = "sa";
String password = "123";
try {
Connection connection = DriverManager.getConnection(jdbcURL, username, password);
System.out.println("Connected to H2 embedded database.");
connection.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
}
H2数据库库通过Maven中的依赖项添加到我的项目中。这是 pom.xml 文件中的依赖项:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.220</version>
<scope>test</scope>
</dependency>
您的依赖项适用于
test
范围,因此它不会添加到运行时类路径中。
您需要将其更改为
runtime
。将 <scope>test</scope>
更改为 <scope>runtime</scope>
。
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.220</version>
<scope>runtime</scope>
</dependency>
或者省略
scope
元素,因为 runtime
是默认值。
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.220</version>
</dependency>