Как обновить ArrayList только тогда, когда он добавил данные в MySQL? - PullRequest
0 голосов
/ 14 июля 2020

Я делаю книжный магазин, и у меня есть кнопка «Корзина», которая открывает корзину, и пользователь может видеть все, что он добавил. Проблема в том, что каждый раз, когда я нажимаю на эту кнопку, я выполняю запрос выбора и добавляю эту книгу / книги в ArrayList. Например, пользователь добавил 2 книги в корзину, поэтому каждый раз, когда я нажимаю кнопку «Корзина», он добавляет эти две книги в ArrayList и отображает их (в db все хорошо). Вот как выглядит метод:

private static DataSource dataSource;
private static ArrayList<Article> articleList = new ArrayList<>();

public static void selectArticle() {
           
    try {
        InitialContext ctx = new InitialContext();
        dataSource = (DataSource) ctx.lookup("jdbc/NemkeDB");
        Connection conn = dataSource.getConnection();
        String selectArticle = "select * from article where cart_id="+CartDAO.getAutoIncKey();// this is cart id
        PreparedStatement ps = conn.prepareStatement(selectArticle);
        ResultSet rs = ps.executeQuery(selectArticle);        
        while (rs.next()) {               
            int articleId = rs.getInt("id");
            String  articleTitle = rs.getString("title");
            double  articlePrice = rs.getDouble("price");
            double  articlePriceSum = rs.getDouble("priceSum");
            Article article = new Article(articleId, articleTitle, articlePrice,  articlePriceSum);
            articleList.add(article);
        }
    } catch (Exception e) {
        System.err.println(e);
    }
}

Как я могу отображать корзину без добавления товаров каждый раз, когда пользователь нажимает кнопку? Я просто для того, чтобы показать, как это находится в моей базе данных.

1 Ответ

1 голос
/ 14 июля 2020

Просто проверьте, есть ли статья с идентификатором articleList в вашем списке - если да, не добавляйте ее в список.

...