java - H2:在所有其他计算机上均出现错误

标签 java database-connection h2

我在我的 Java 项目中使用 H2 数据库(嵌入模式)。 在我家里的计算机上一切正常,可以建立连接,但在所有其他计算机上我总是收到以下错误:

org.h2.jdbc.JdbcSQLException: Table "CUSTOMERS" not found; SQL statement: SELECT * FROM CUSTOMERS [42102-162]

我确定,数据库内一切正常,应该与连接有关。 但即使我导入了h2-1.3.162.jar文件,错误仍然存​​在。

String dbClass = "org.h2.Driver";
String dbDriver = "jdbc:h2:~/cc";
String user = "user1";
String pass = "test1";
private Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;

public void connect() {
    boolean done = false;
    //load driver
    try {
        Class.forName(dbClass).newInstance();
        System.out.println("driver loaded"); // This is shown in the Compiler
    } catch (Exception ex) {
        System.out.println("error while loading driver");
        System.err.println(ex);
    }
    // Connection
    try {
        conn = DriverManager.getConnection(dbDriver, user, pass);
        System.out.println("connected"); // This is shown in the Compiler
        done = true;
    } catch (SQLException ex) {
        System.out.println("SQLException: " + ex.getMessage());
        System.out.println("SQLState: " + ex.getSQLState());
        System.out.println("VendorError: " + ex.getErrorCode());
    }
}

public Vector select() {
    data = new Vector();
    try {
        stmt = conn.createStatement();
        rs = stmt.executeQuery("SELECT * FROM CUSTOMERS");
        while (rs.next()) {
            Vector row = new Vector();
            row.add(rs.getInt("id"));
            row.add(rs.getString("fname"));
            row.add(rs.getString("lname"));
            row.add(rs.getString("street"));
            row.add(rs.getString("city"));
            row.add(rs.getString("zip"));
            row.add(rs.getString("state"));
            row.add(rs.getString("phone"));
            row.add(rs.getString("birthday"));
            row.add(rs.getString("email"));
            row.add(rs.getInt("code"));
            data.add(row);
        }
        rs.close();
        stmt.close();
    } catch (SQLException ex) {
        System.out.println("error while selecting"); // I receive this error
        System.err.println(ex);
    }
    return data;
}

最佳答案

问题不在于您的连接,因为如果无法连接到数据库,您会在此之前收到异常。异常也很清楚地说明了问题是什么 - 它找不到 CUSTOMERS 表。这可能是因为该表根本不存在,或者连接指向错误的数据库;尝试输入表的完整架构信息,而不仅仅是其名称,然后看看是否有效。

关于java - H2:在所有其他计算机上均出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8818466/

相关文章:

java - JTable中如何改变行的颜色

java - 转储 H2 插入语句

spring - 事务不适用于 Spring 3.1 – H2 – junit 4– hibernate 3.2

h2 - 如何在 Quarkus 应用程序中设置 H2 数据库控制台 url

java - 带参数的函数的 JAXB 编码

java - 如何从 StyledText 获取所有折叠线

MySQL : Is there a way to reserve x connections for a given user?

php - 什么时候应该使用 mysqli_kill() 和 mysqli_close()?

java - MySQL JDBC 驱动错误

Java String 变量设置 - 引用还是值?