【问题标题】:H2 No suitable driver found for jdbc:h2:mem:H2 找不到适合 jdbc:h2:mem 的驱动程序:
【发布时间】:2021-05-24 14:21:19
【问题描述】:

我正在尝试使用 H2 的示例。但我无法创建内存数据库。当我运行以下程序时,我只收到一条错误消息:

java.sql.SQLException: 找不到适合 jdbc:h2:mem 的驱动程序 java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702) 在 java.sql/java.sql.DriverManager.getConnection(DriverManager.java:251) 在 db.DBExample.main(DBExample.java:14)

我在 pom.xml 中包含了

<dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <version>1.4.200</version>
   <scope>test</scope>
</dependency>

有人知道怎么回事吗?

import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DBExample {
    public static void main(String[] a) throws Exception {

        var url = "jdbc:h2:mem:";
        try (var con = DriverManager.getConnection(url);
             var stm = con.createStatement();
             var rs = stm.executeQuery("SELECT 1+1")) {
             if (rs.next()) {
                 System.out.println(rs.getInt(1));
             }
        } catch (SQLException ex) {
            var lgr = Logger.getLogger(DBExample.class.getName());
            lgr.log(Level.SEVERE, ex.getMessage(), ex);
        }
    }
}

【问题讨论】:

    标签: java h2


    【解决方案1】:

    问题是因为您指定了&lt;scope&gt;test&lt;/scope&gt;。 删除范围线。

    此范围表示该依赖不是应用正常使用所必需的,仅适用于测试编译和执行阶段。

    <dependency>
       <groupId>com.h2database</groupId>
       <artifactId>h2</artifactId>
       <version>1.4.200</version>
    </dependency>
    

    看看这里:driver not found

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-06
      • 2015-07-12
      • 1970-01-01
      • 2012-12-09
      • 2019-03-14
      • 2017-02-12
      • 2016-04-02
      相关资源
      最近更新 更多