6

次のエラーが発生します。

java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: apartments)

実際には、テーブルは存在します。以下は私のコードです:

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);
}
4

3 に答える 3

8

これは、データベースへの正しいパスを取得するのに役立つ場合があります

データベース ファイルの指定方法

ファイルC:\work\mydatabase.db (Windows の場合)を選択する例を次に示します。

Connection connection = DriverManager.getConnection("jdbc:sqlite:C:/work/mydatabase.db");

UNIX (Linux、Mac OS X など) ファイル /home/leo/work/mydatabase.db

Connection connection = DriverManager.getConnection("jdbc:sqlite:/home/leo/work/mydatabase.db");

メモリ データベースの使用方法 SQLite は、データベース ファイルを作成しないオンメモリ データベース管理をサポートしています。Java コードでメモリ データベースを使用するには、次のようにデータベース接続を取得します。

Connection connection = DriverManager.getConnection("jdbc:sqlite::memory:");

これも役立ちます

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

Apartments.db がプロジェクトのルート ディレクトリに配置されていることを前提としています

于 2013-02-21T10:16:39.527 に答える
1

拡張子 .db をに変更.sqlite

connection = DriverManager.getConnection("jdbc:sqlite:Path\\To\\apartments.sqlite");
于 2013-02-21T10:16:36.057 に答える