Java:缺少数据库错误

Vol*_*il3 6 java database sqlite sqlexception

我收到以下错误:

java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: apartments)
Run Code Online (Sandbox Code Playgroud)

实际上,该表确实存在.以下是我的代码:

try {
    // load the sqlite-JDBC driver using the current class loader
    Class.forName("org.sqlite.JDBC");
    Connection connection = null;
    // create a database connection
    connection = DriverManager.getConnection("jdbc:sqlite:/Path/To/apartments.db");
    System.out.println(connection.getMetaData());
    Statement statement = connection.createStatement();
    statement.setQueryTimeout(30);

    ResultSet rs = statement.executeQuery("select * from apartments");
    while(rs.next()) {
        // read the result set
        System.out.println("TEXT = " + rs.getString("display_text"));
        System.out.println("X1 = " + rs.getInt("x1"));
    }
} catch (Exception ex) {
    Logger.getLogger(MouseEventDemo.class.getName()).log(Level.SEVERE, null, ex);
}
Run Code Online (Sandbox Code Playgroud)

Fes*_*loe 8

可能这可以帮助您获得正确的数据库路径

如何指定数据库文件

以下是选择文件C:\ work\mydatabase.db的示例(在Windows中)

Connection connection = DriverManager.getConnection("jdbc:sqlite:C:/work/mydatabase.db");
Run Code Online (Sandbox Code Playgroud)

UNIX(Linux,Mac OS X等)文件/home/leo/work/mydatabase.db

Connection connection = DriverManager.getConnection("jdbc:sqlite:/home/leo/work/mydatabase.db");
Run Code Online (Sandbox Code Playgroud)

如何使用内存数据库 SQLite支持内存数据库管理,它不会创建任何数据库文件.要在Java代码中使用内存数据库,请按如下方式获取数据库连接:

Connection connection = DriverManager.getConnection("jdbc:sqlite::memory:");
Run Code Online (Sandbox Code Playgroud)

这也有帮助

String path=this.getClass().getResource("apartments.db").getPath();
            connection = DriverManager.getConnection("jdbc:sqlite:"+path);
Run Code Online (Sandbox Code Playgroud)

假设apartments.db放在项目根目录中