4

アプリケーションを正しく実行するには、どのファイルをエンドユーザーに提供する必要がありますか?

myapp.jar同じフォルダー内の&myapp.dbファイルのみを使用して、開発システムでアプリを実行できます。しかし、友人と共有しようとしたとき、彼はデータベースをロードできませんでした..

sqlite.dllまたはsqlite.exeファイルもアプリケーション ディレクトリに含める必要がありますか?

注:データベースは、実行時にデータを取得および保存するために使用されます。

編集: SWING アプリケーションなので、データベースまたはそのスキーマが見つからない場合にポップアップ エラーが表示されます。コードは次のとおりです。

public boolean DBExists(Connection con,String dbName) {
  Statement stmt = null;
    ResultSet res = null;     
    try
  {
      String sql = "SELECT name FROM sqlite_master WHERE TYPE='table';";
      stmt = con.createStatement();
        res = stmt.executeQuery(sql);
  }
  catch(SQLException e)
  {
      System.out.println("Error creating or running SELECT statement: " + e.toString());
  }
    try {
      if (res.next()) {
          System.out.println("Database checked!");
          return true;
      } else {
          System.out.println("Database doesnt exist!");
          return false;
      }
    } catch (SQLException e) {
      System.out.println("Error processing results: " + e.toString());
    }
    System.out.println("Problem while checking database availability.");
    return false;
}

「データベースが存在しません!」メッセージがトリガーされます。

編集#2:

DBExist() チェックを呼び出す接続メソッドも次に示します。

public Connection DBConnect() {
    //STEP 1: Setup the Driver
    try
    {
        //Load the JDBC driver class dynamically.
        Driver d = (Driver)Class.forName(DRIVER).newInstance();
        DriverManager.registerDriver(d);
        System.out.println("Driver loaded successfuly!");
    }
    catch(Exception e)
    {
        System.out.println("Error loading database driver: " + e.toString());
        return null;
    }

    //STEP 2: Create connection to database using database URL
    Connection con;
    try
    {
        //FIXME: Load database filename via external config.
        con = DriverManager.getConnection(URL);
        System.out.println("Database connection successfull!");
        if (!DBExists(con,DB_NAME)) {
            JOptionPane.showMessageDialog(null,
                    "Database file was not found!",
                    "Database Fatal Error",
                    JOptionPane.ERROR_MESSAGE);
            System.exit(0);
        }
    }
    catch(SQLException e)
    {
        System.out.println("Error creating connection: " + e.toString());
        return null;
    }
    return con;          
}
4

1 に答える 1