当我在J2EE中开发Web应用程序时,我必须非常小心数据库调用。
我将图像存储在数据库中(BLOB)。
为了访问这些图像,我创建了一个servlet文件。
我将id作为GET
方法传递给该文件。
为了显示图像,我需要调用该servlet文件。
但是当这个servlet文件进行另一个数据库调用时,我最关心的是。
例如:
如果在那个特定的jsp文件中,我想显示3行,我将进行1次调用以显示这些行,另外3次调用以显示这些行。
我有2个选项
但对我来说两个都不好。 请建议一些事情。
答案 0 :(得分:3)
如果您担心数据库的负载,您应该避免在其中存储图像。而是将图像存储在磁盘上,并将其路径存储在数据库中。
这样,当您需要在一个页面中显示三个图像时,执行单个查询以获取三个图像的路径,并生成包含3个路径的HTML页面。
如果您没有其他选择,只能将图像作为blob存储在数据库中,并且如果您对应用程序进行了负载测试,并且表明从数据库中获取它们会导致严重的性能问题,那么请考虑使用某些应用程序缓存(像EHCache),从数据库中删除负载。您还可以从数据库中一次获取三个图像并将它们存储在会话中,但您必须找到一种方法来清理会话,否则应用程序的内存将非常快速地攀升。
答案 1 :(得分:0)
而不是多次点击数据库。 只需编写一个查询,您将获得所需的所有行或所需的图像。 并使用ArrayList显示所有图像行 这将是一个更容易的方法:)