Java 将Json对象存储到数据库

Java 将Json对象存储到数据库,java,mysql,nosql,report,Java,Mysql,Nosql,Report,我从数据库运行非常复杂的报告。到目前为止,我返回了一个复杂的json对象,javscript正在呈现报告。但是随着它的发展,创建这个json对象需要很长时间 我正在考虑用另一种方法来取代这一点。用户将创建一个生成报告的请求,服务器端进程可以生成json并将其存储起来供以后使用,用户将收到电子邮件链接 在数据库中存储json对象是否安全?存储它的主要原因是,用户将要运行报告的列从来都不是固定的。我应该选择NoSql吗 提前感谢。在数据库中存储JSON应该是安全的。JSON是简单的文本,所以在这个意

我从数据库运行非常复杂的报告。到目前为止,我返回了一个复杂的json对象,javscript正在呈现报告。但是随着它的发展,创建这个json对象需要很长时间

我正在考虑用另一种方法来取代这一点。用户将创建一个生成报告的请求,服务器端进程可以生成json并将其存储起来供以后使用,用户将收到电子邮件链接

在数据库中存储json对象是否安全?存储它的主要原因是,用户将要运行报告的列从来都不是固定的。我应该选择NoSql吗


提前感谢。

在数据库中存储JSON应该是安全的。JSON是简单的文本,所以在这个意义上,我不认为这种方法有任何问题。

在您提到的特定情况下,您应该考虑一个键值存储,例如ReDIS。您可以存储,比如user\u id->json\u对象。键值存储非常适合缓存,这从本质上来说就是您正在做的事情

在一般情况下,存储JSON是可能的,但它丢失了一件至关重要的事情:如何在SQL查询中使用数据的语义并不明显。例如,假设我们存储以下记录:

{'color': blue, 'height': '40px'}  
{'color': blue, 'height': '50px'}  
{'color': red, 'height': '40px'}  
作为数据库中的字符串


如果我们想要识别所有颜色为“蓝色”的元素,那么我们唯一的选择就是在每个字符串元素中搜索字符串“%blue%”。这既昂贵又容易出错。您可能会考虑将JSON拆分为数据库或移动到某个键值对或其他存储。

您可能会考虑使用节约而不是JSON。有一个javascript thrift库,因此您仍然可以渲染thrift对象,它将更快地生成并更高效地存储在任何数据库中。