将 JavaFX (Maven) 项目与 H2 嵌入式数据库连接时“找不到合适的驱动程序”

问题描述 投票:0回答:1

我在使用 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>
maven javafx h2
1个回答
3
投票

您的依赖项适用于

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>
© www.soinside.com 2019 - 2024. All rights reserved.