1

我必须处理一个 Excel 文件,以便在基于 Web 的应用程序上将一些数据插入到 Mysql 数据库中。我使用 Spring MVC 作为架构。

问题是我需要包括一个中间步骤,用户可以在实际插入之前查看要插入的数据。因此,典型的过程是用户上传文件,然后应用程序将显示另一个包含已处理信息的网页,以及一个“应用更改”按钮,该按钮实际上会获取所有这些信息并将其存储到我的数据库中。

起初,为了在三个步骤(上传的第一页、中间步骤页面和最终控制器操作)中传播文件中的数据,我只是使用了一个表单,我将使用隐藏字段来存储数据,以避免必须处理文件两次(一次用于中间步骤的结果呈现,另一次用于实际数据存储)。问题是 Excel 文件包含太多信息,以至于我的中间步骤页面超载并且渲染时间太长(并且在获取参数时在控制器中进一步处理它)。

所以我想在我的数据库中使用临时文件或临时关系来存储步骤之间的数据。还有其他方法可以在控制器操作之间传播这些数据吗?我不想留下垃圾数据也不想再次处理文件(因为这需要相当长的时间)那么最好的方法是什么?

4

1 回答 1

1

在这种情况下,如果处理时间不会太长,我会选择一个临时表。首先,您可以使用最终表格中的序列,您只需在用户在第二个屏幕中单击“确定”后发出“插入到选择中”语句。这将是一个简单的实施方案,我会说,所有的处理都完成了。

如果处理部分是“巨大的”并且用户可以在这个大任务之前检查某些事情,那么解决方案可能是将处理分成两部分并将第一个结果存储在一个临时文件中并基于该文件实现一个屏幕。用户单击确定后,您可以启动一个异步任务,该任务完成繁重的工作并在完成后清理文件。

于 2013-05-23T13:32:07.413 回答