java - 我是否必须将 csv 值加载到 Java Web 应用程序的数据库中

标签 java jsp csv

我希望创建一个使用两组数据库的网站,以 CSV 格式给出,大小均为 10 MB。我选择将 Java 动态 Web 应用程序与 JSP 结合使用,用户可以使用该应用程序对通过 CSV 提供的数据进行搜索和排序。

据我了解,用户/客户端向服务器发送请求,服务器将调用后端的Java案例,该案例具有不同的排序方法和可以操作的CSV数据。

这些位于后端的数据是我遇到困惑的地方。我知道可以将数据加载到数据库中,并将其放在我可以调用的服务器上。

如果我使用一个读取 CSV 并将数据加载到数组中的类,那么每次有人访问网站时都会执行此读取工作,从而导致延迟,还是已经将其加载到服务器中的数组中?

最佳答案

根据您使用的范围,它将被加载到应用程序上下文中,因此一次(例如在应用程序启动时加载的单例类中)。

但我不推荐这种方法,我会推荐一个设计合理的数据库,您可以将 csv 数据放入其中。这样,您将拥有数据库引擎来帮助您组织数据,从而为您提供可伸缩性和可维护性(尽管通过正确的类设计,DAO 模式将为您提供相同的效果)。 数据库中的组织数据将使您能够更灵活地使用已创建的 SQL 函数搜索数据。

为了说明我的观点,数据库系统相对于文件系统有一些优点:

  • 无冗余数据 - 通过数据标准化消除冗余
  • 数据一致性和完整性 - 数据规范化也能解决这一问题
  • 安全 - 每个用户都有不同的访问权限
  • 隐私 - 访问受限
  • 轻松访问数据
  • 轻松恢复
  • 灵活
  • 并发 - 数据库引擎将允许您并发读取数据甚至写入数据。

我不会列出缺点,因为我正在阐述自己的观点:)

关于java - 我是否必须将 csv 值加载到 Java Web 应用程序的数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35857380/

相关文章:

java - 获取手机的实际方向

java - 使用 selenium 在页面之间导航 - Java

python - 创建 CSV、压缩它并通过电子邮件附加的最佳方式

c++ - visual studio 2012 中的 getline() 函数工作方式不同,直接跳到最后一行

csv - Powershell,使用文件名合并CSV文件

java - Java中的环形缓冲区

java - 从jsp传递参数到servlet

java - 如何使用 Tomcat CSRFPreventionFilter 将 JSP 页面列入白名单?

java - 请求结束后请求属性未清除

java - Android - 失败 [INSTALL_FAILED_MISSING_SHARED_LIBRARY] 安装失败,输出如下 : pkg:/data/local/tmp/Package. apk