【问题标题】:JSP Dropdown list from database来自数据库的 JSP 下拉列表
【发布时间】:2016-02-04 08:10:56
【问题描述】:

只是一个新手问题,我目前正在开发一个系统,它有一个需要用户填写的表格,

我计划使用使用休眠从数据库中提取的数据填充几个下拉列表。

问题是,我这样做是否明智?假设我有 3-4 个下拉菜单,每个下拉菜单都有来自数据库的 50-100 多个选项。它会遇到性能问题吗?谢谢。

【问题讨论】:

    标签: java sql hibernate jsp jpa


    【解决方案1】:

    您最好允许用户在下拉菜单中搜索并在他们输入一定的最少字符数(例如 3 或 4 个)后过滤结果。

    有了这么多结果,您可能无论如何都需要过滤,这样做意味着您不会一次加载所有数据,而只是加载需要的数据。

    【讨论】:

    • 是的,我正在使用带有搜索过滤器的下拉菜单。但是您如何实现不一次加载所有数据?我打算使用 jstl 来填充下拉列表,但这会一次加载所有数据。
    • 我不确定它究竟是如何使用 java 工作的,但基本上你会在每次按键时查询数据库并根据输入的内容过滤结果。然后,您可以将其限制为前 10 或 20 个结果,这些结果将随着用户输入更多字符而得到优化。虽然它不是 java,但请看一下 select2 的“加载远程数据”示例:select2.github.io/examples.html
    • 我明白了。我会先检查一下。谢谢。
    【解决方案2】:

    数据驱动的性能问题并不新鲜,而且大多数时候它与从数据库中查询的数据过多有关。 有大量关于“优化”的好资源。

    以下链接概览: 如果您正在使用 ORM、Hibernate 等。在性能方面,有一些基础知识可以让您保持开放:

    不要进行显式刷新

    不要在映射中禁用延迟加载

    不要使用 Session.clear()

    休眠性能

    Hibernate 基本上承诺提供性能的方式是通过缓存和更改每次获取的数据量。这适用于您使用 Hibernate 的大多数情况。如果没有,您可能只需要执行一些好的旧 SQL。

    http://blog.f12.no/wp/2010/02/16/hibernate-performance-and-optimization/

    去年我遇到了一个特殊的性能问题,对我有用的是使用 AJAX 将 UI 处理/加载转移到客户端。

    【讨论】:

      猜你喜欢
      • 2020-01-09
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      相关资源
      最近更新 更多