Table 未找到

Table not found

public void tableupdate(JTable jTable1, String fill) {

    try {
        try {
            Class.forName("org.h2.Driver");
            Connection con = DriverManager.getConnection("jdbc:h2:file:D:/Inventory.db", "sa", "");

            Statement stat = con.createStatement();
            fill = "SELECT * FROM BOOKDESC";
            ResultSet rs = stat.executeQuery(fill);

            while (jTable1.getRowCount() > 0) {
                ((DefaultTableModel) jTable1.getModel()).removeRow(0);

            }
            int columns = rs.getMetaData().getColumnCount();
            while (rs.next()) {
                Object[] row = new Object[columns];
                for (int i = 1; i <= columns; i++) {
                    row[i - 1] = rs.getObject(i);

                }
                ((DefaultTableModel) jTable1.getModel()).insertRow(rs.getRow() - 1, row);

            }
            rs.close();
            stat.close();
            con.close();
        } catch (ClassNotFoundException e) {
            JOptionPane.showMessageDialog(null, e);
        }

    } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, e);
    }

}

所以基本上,每当我 运行 我得到这个错误。

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

我试过添加

;DB_CLOSE_DELAY=-1

;DATABASE_TO_UPPER=false

到连接 URL,但它不起作用

错误代码[42102-154]表示它是从H2 1.3.154抛出的。这个古老版本的 H2 无法读取由 1.4.200 创建的数据库(来自您的 H2 控制台屏幕截图)并以另一种格式创建一个具有不同文件扩展名的新空数据库。

您需要将应用程序类路径中的 H2 的 jar 更新为版本 1.4.200。