Сервлет работает со старыми SQL данными - PullRequest
0 голосов
/ 31 января 2020

У меня странная проблема, я работаю над веб-приложением с java сервлетами и SQLite, используя Jquery в качестве внешнего интерфейса. До сих пор это было успешно, но недавно, когда я вручную удаляю или добавляю что-то в базу данных (из SQLite Studio) и перезагружаю сервер, я все еще получаю старые данные, как будто новые данные вообще не загружаются, все, что у меня есть, это данные, которые фактически удалены.

например, у меня было 10 фильмов в моей базе данных, и я удалил 3 из них из SQLite Studio, но когда я загружаю приложение, я все равно получаю 10 фильмов.

Есть ли способ реинициализации базы данных? У меня есть что-то про очистку кеша, но не удалась.

Кстати, я удалил базу данных в SQLite Studio и создал новую с тем же именем и данными. Может быть, в этом проблема, мне нужно как-то повторно инициализировать ее

Вот мой ConnectionManager, который до сегодняшнего дня работал нормально (работал над этим приложением более месяца).

public class ConnectionManager {

    private static final String DATABASE_NAME = "cinema.db";

    private static final String FILE_SEPARATOR = System.getProperty("file.separator");
    private static final String WINDOWS_PATH = "C:" + FILE_SEPARATOR + "Users" + FILE_SEPARATOR + 
            "Marnitzinho" + FILE_SEPARATOR + "Documents" + FILE_SEPARATOR + DATABASE_NAME;
    private static final String LINUX_PATH = "SQLite" + FILE_SEPARATOR + DATABASE_NAME;

    private static final String PATH = WINDOWS_PATH;

    private static Connection connection;

    public static void open() {
        try {
            Class.forName("org.sqlite.JDBC");
            connection = DriverManager.getConnection("jdbc:sqlite:" + PATH);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public static Connection getConnection() {
        return connection;
    }

    public static void close() {
        try {
            connection.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

}

InitListener

public class InitListener implements ServletContextListener {

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        ConnectionManager.close();

    }

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("Initialization....");

        ConnectionManager.open();

        System.out.println("Done!");

    }
}

web. xml

<listener>
    <listener-class>cinema.dao.InitListener</listener-class>
</listener>

Вот изображение файла с путем и другой информацией https://imgur.com/xWFGSYY

Любая помощь приветствуется, действительно застрял на этом.

РЕДАКТИРОВАТЬ: Я сделал новый файл и подключился к нему, но теперь я получаю,

[SQLITE_ERROR] SQL error or missing database (no such table: movies)

, но есть такая таблица .. .

1 Ответ

0 голосов
/ 01 февраля 2020

Я решил эту проблему, создав новый файл базы данных и переместив его в каталог проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...