java - 如何仅在 MySQL 中添加数据时更新 ArrayList?
问题描述
我正在做书店,我有一个“购物车”按钮,可以打开购物车,用户可以看到他添加的所有内容。问题是每次单击该按钮时,我都会执行选择查询并将该书添加到 ArrayList 中。例如,用户在购物车中添加了 2 本书,所以每次我单击“购物车”按钮时,它都会将这两本书添加到 ArrayList 中并显示它们(数据库中的一切都很好)。这是方法的样子:
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);
}
}
每次用户单击按钮时,如何在不添加商品的情况下显示购物车?我只是为了显示它在我的数据库中的情况。
解决方案
只需检查带有 id 的文章articleList
是否已经在您的列表中 - 如果是,请不要将其添加到列表中。
推荐阅读
- vba - 在不删除 VBA 的情况下在 Word 中清除文本内容控件
- truffle - 在 Truffle 中,部分评估的结果属于哪个“抽象级别”?
- maven - 是否可以让 jenkins 容器使用 maven 容器来构建应用程序,而不必使用安装程序?
- javascript - 如何避免“未定义”值作为输出?
- akka - java.util.concurrent.TimeoutException: Futures timeouts after [3000 milliseconds] 创建akka actorSystem时
- javascript - 可以在没有持续回流的情况下动态调整高度的文本区域吗?
- javascript - 将“name1.name2.name3”之类的字符串放入 JSON 以访问密钥 json
- android - 单元测试我无法将观察者添加到 LiveData NullPointerException
- php - 从我的 pdo 调用中创建正确的数据结构
- json - React 道具没有渲染链接