【问题标题】:how to store images on server so that image path with id can be store in a property file as map so that we can get images based on id如何在服务器上存储图像,以便可以将具有 id 的图像路径作为映射存储在属性文件中,以便我们可以根据 id 获取图像
【发布时间】:2020-01-03 08:27:27
【问题描述】:

我是 java 新手,我正在开发 Spring MVC、hibernate、MySQL 基础项目和

我想将图像存储在服务器上的指定文件夹/目录中,以便我可以管理一个属性文件(文件名可能是什么),我可以在其中存储图像路径,id 为 map(键为 id,值为图像path) 在该属性文件中,并且我还想从数据库表中获取一些其他信息,这些信息也可能包含其他图像信息,如上传日期和描述等,所以我该怎么做。

提前致谢

【问题讨论】:

  • 不清楚您的要求。听起来您已经知道要做什么 - 存储一个将 ID 映射到图像路径的属性文件。在实施您所描述的内容时,您面临哪些问题?
  • 我认为如果你在服务器上有一个特定的文件夹(路径相关),那么通过名称读取它们会很容易,然后名称也可以是你的 ID。
  • @jon Skeet 实际上我在谷歌上搜索了如何将图像存储在数据库中,有人告诉我将图像存储在服务器上的文件夹中,并在该文件存储图像路径中维护一个文件,其 id 是基于 id 我可以获取图像而不是直接将图像存储在数据库中或将图像路径存储在数据库表中,所以我认为我应该使用一个地图,我可以在其中存储 id(数据库表的 PK)作为键和图像路径作为值,以便可以获取图像基于密钥和信息,如上传的数据,可以从具有 id 的数据库表中获取。这是为了快速响应而存储图像的首选方式吗?
  • 希望你明白我的意思
  • 现在这是一个非常基于意见的问题,并不适合 SO。这对我来说听起来不错,只要您的文件系统被适当地复制以避免单点故障。

标签: java mysql spring hibernate controller


【解决方案1】:

如果我没记错的话,我得到了你的问题 - “你基本上想做两件事,首先是一个包含映射到键的图像位置的属性文件,第二个管理与图像相关的信息,例如上传时间和描述",所以我会怎么做-

我不建议您维护属性文件,因为 CRUD 操作不会那么方便。此外,您要维护的数据不是属性,它们是实时/动态数据,您的设计应该有很好的控制。您已经在使用 hibernate 和 MySQL,所以您为什么不考虑维护一个表(一个休眠实体)来替换您的属性文件,并且您可以轻松维护其他信息,例如上传时间和描述。所有这些都可以是您实体的属性。此外,如果需要,您可以定义与其他实体的关系。来到 CRUD 操作,令人敬畏的 hibernate API 正在救援中。还要考虑可测试性,使用这种方法可以轻松测试您的设计。

我已经在我公司的一个项目中这样做了,它的设计还不错。

【讨论】:

  • ok @Rajib 根据我的数据库设计我将图像路径存储在表中并使用它我只是有一个性能问题需要时间来获取图像所以它会对性能产生多大影响?
  • @amit,你要处理多少数据?你怎么知道性能瓶颈在 MySql 中?如果您发现了 MySql 中的问题,您可以尝试数据库优化技术,尝试索引,请参阅更多建议 - stackoverflow.com/questions/29083192/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多