Java:将HashMap保存在数据库中的最佳方法?序列化并存储为BLOB或添加另一个具有3列(id,键,值)的表?

时间:2018-08-15 10:06:39

标签: java performance hashmap

与JasperReports一起使用,用户可以在数据库中保存报告的参数["[{\"tagname\":\"TEST\",\"category\":\"DEFAULT\",\"isnew\":\"yes\",\"isdeleted\":\"no\"}]"] ,以便以后可用于自动调度并再次重新生成该报告。

当前,报表参数存储为字符串,然后作为BLOB编码为字节,即HashMap<String, Object>

这种方法(自动调度触发器触发时)非常昂贵,因为它会再次产生参数,并且还会产生参数值复杂的问题。

我想更改保存HashMap的方法,那会是什么?

我既可以保持数据库架构不变,又可以通过序列化它来保存reportParam,并在需要时反序列化它呢?如下所示,还是最好添加另一个具有1 .. *多重性的表,以便为每个报告分别存储参数?

还是我缺少任何更好的方法?检索reportParams时也要关注性能。谢谢。

rs.setParameters(reportParams.toString().getBytes("UTF-8"));

0 个答案:

没有答案