我有以下问题。使用Java应用程序我需要每1秒从外部XML文件向数据库表插入数据。
此外,我必须在同一个表上执行选择/更新查询。
表每隔几天清洁一次。我的问题是:如何以最佳方式解决它?一切都必须有效live
。我们不能允许存在时移的情况(记录不是每1秒检查一次)。
有什么想法吗?
答案 0 :(得分:1)
根据您规划应用程序的复杂程度,您可能会考虑使用JPA / Hibernate来访问您的数据库。它使访问你的数据库变得更加简单(因为你操纵POJO来访问你的数据),但缺点是它在性能方面不是最佳的(操纵原始sql和原始数据总是比操纵对象更快)。
对于你的工作检查,我会设置石英,为你提供定期安排工作的可能性。
你的问题有点模糊,可以提供更多提示。它是一个Web应用程序吗?一个Java EE?一个沉重的客户?你需要高性能有多糟糕?你想创建一个小型的应用程序,没有未来的披萨餐巾,或者你打算在将来扩展应用程序。
答案 1 :(得分:0)
每秒10-20条记录不是很大。无论如何,如果您遇到任何性能问题,请务必使用JDBC batch inserts:
PreparedStatement stmt = con.prepareStatement(
"INSERT INTO table_name (field_name1, field_name2) VALUES (?, ?)");
stmt.setInt(1, 2000);
stmt.setString(2, "String value");
stmt.addBatch();
stmt.setInt(1, 3000);
stmt.setString(2, "Other String");
stmt.addBatch();
// submit the batch for execution
int[] insertCounts = stmt.executeBatch();