使用spring框架将统计数据保存在文件中的最佳方法是什么?有没有可用的库提供读取和更新文件上的数据的功能?还是应该建立自己的IO代码?
我已经有一个关系数据库,但是不喜欢创建一个附加表以通过连接将计算的值保存在不同的多个表中的方法,也不想通过使用附加表来增加项目的复杂性数据库仅用于一项任务,例如MongoDB。
要了解此报告的复杂性,想象一下,您正在绘制一张图表,其中包含一整年的每日交易总数,随时都有数十亿条记录以及许多额外信息,例如(使用不同货币的总和平均值)。不同的费率)。
因此,我的方法是定期在文件中生成这些数据,因此以后我不再需要再次生成它们,而仅在文件可用时才累积新日期
这种方法还好吗?最好的图书馆以有效的方式做到这一点?
更新
我发现这个答案很有用,因为为什么有时候人们更喜欢使用平面文件而不是关系文件或非关系文件
Is it faster to access data from files or a database server?
答案 0 :(得分:0)
我更愿意将MongoDB用于此类目的,但是如果您需要简单的方法,则可以将数据写入csv \ excel文件。 只需使用I \ O
List<String> data = new ArrayList<>();
data.add("head1;head2;head3");
data.add("a;b;c");
data.add("e;f;g");
data.add("9;h;i");
Files.write(Paths.get("my.csv"), data);
仅此而已)
我想您知道如何将自己的对象转换为这样的字符串'filed1;field2'
。
您也可以使用apache-poi csv库,但是我认为这要快得多。
Files.write(Paths.get("my.csv"), data, StandardOpenOption.APPEND);
如果要将数据追加到现有文件中,StandardOpenOption中有许多不同的选项。
阅读时应使用Files.readAllLines(Paths.get("my.csv"));
,它将返回您的字符串列表。
您也可以读取范围内的行。
但是,如果您需要检索一列或在其中更新两列,依此类推。您应该阅读有关MongoDB或其他非关系数据库的信息。这里很难写有关MongoDB的信息,您应该阅读文档。
享受)
答案 1 :(得分:0)
我发现一个可以轻松写入/读取CSV文件并可以映射到对象的库Jackson data formats
用弹簧找到example