我们的团队正在构建一个小型应用程序,其中一个UI包含大约10个下拉列表框。 (DDLB)。
这些列表框将通过从不同表中选择数据来填充。
我们的JAVA人员认为,对每个列表进行单独的数据库调用将非常昂贵,并且希望对所有列表进行单个数据库调用。
由于以下原因,我认为在一个数据库调用中填充所有列表是不切实际的
a. Imagine an end user chooses state = 'NY' from one DDLB.
b. The next drop down should be populated with values from ZIP_CODES table for STATE='NY'
除非我们提前知道用户将选择哪种状态-我们唯一的选择是用ZIP_CODES表中的所有值填充Java结构。在用户选择状态后-解析该结构以获取NY邮政编码。
想象一下对表单中的所有DDLB执行此操作。这不仅实用,而且会占用大量资源。
有什么想法吗?
答案 0 :(得分:2)
如果这些列表中没有太多项目,并且内存量允许您在应用程序启动时将所有保管箱的所有值加载到内存中,然后过滤内存中的数据。最好对用户使用这些下拉框执行的每个操作执行SQL查询。
您还可以使用某些缓存引擎(例如EhCache
),这些引擎可以将数据卸载到磁盘上并仅将一部分存储在内存中。
答案 1 :(得分:0)
您可以花一些时间看一下,但是我怀疑您正在流汗,可能需要100秒的时间才能执行。明智的UI设计,我从不将邮政编码放在选择菜单中,因为列表太长,人们已经知道它足以打孔。当他们离开邮政编码字段时,我将查询城市和州,并在以下字段中预先填写他们尚未设置。