遇到讲师提供的以下示例代码,发现有些奇怪:在执行新的插入查询之前,必须清空数据库中的数据(我想避免数据库中的冗余数据)。

有什么方法可以避免这种通过哈希映射将数据插入数据库的round回方式?

public void saveCustomers() throws ClassNotFoundException, SQLException {
    Statement statement = connection.createStatement();
    String query = "delete from customer";
    statement.executeUpdate(query);

    Iterator customers = HRMS.Customers.entrySet().iterator();

    while (customers.hasNext()) {
        Customer customer;
        Map.Entry customerMap = (Map.Entry) customers.next();
        customer = (Customer) customerMap.getValue();
        query = "insert into customer (memberId, name, nicn, gender, contact) "
                + "values ('" + customer.getMemberId() + "', '" + customer.getName() + "',"
                + " '" + customer.getId() + "', '" + customer.getGender().toString() + "', '" + customer.getContact() + "');";
        statement.executeUpdate(query);
    }
}


编辑:清除HashMap并将数据同时插入数据库(大概使用不同的线程)是否会有所改善?

最佳答案

您可以让另一个线程永远运行,该线程会定期检查缓存,并根据您可以配置的interval参数(例如,每10秒钟一次)将数据库与缓存同步。
但是要注意并发!
这是您要找的东西吗?

10-04 10:57
查看更多