java - 自动完成元组

标签 java autocomplete smartgwt

我有一个像这样的数据库表

Port Code     | Country   |Port_Name
--------------------------------------
 1234         | Australia | port1
 2345         | India     | Mumbai
 2341         | Australia | port2
 ...

该表包含大约 12000 个条目。我需要在用户输入查询时自动完成。现在查询可以是任何端口代码、国家/地区或端口名称。例如,如果用户的部分查询是“12”,下拉列表应显示 1234 |澳大利亚 | port1。我现在面临的问题是,对于每个用户条目,我都会查询数据库,这使得自动完成非常慢。那么有没有办法优化这个?

最佳答案

在smartgwt中使用comboboxitem。然后像这样覆盖comboxitem的getPickListFilterCriteria

ComboBoxItem portSelect = new ComboBoxItem("PORT_ATTRIB", "") {

      @Override
      public Criteria getPickListFilterCriteria() {
        if (getValue() != null && getValue() instanceof String) {
          criteria = new AdvancedCriteria(OperatorId.AND, new Criterion[]{new Criterion("portValue",
              OperatorId.EQUALS, getDisplayValue())});
        }
        return criteria;
      }
    };

每次按键都会为您提供一个可以传递给查询的条件。查询类似于select * from port,其中 portName 如“+criteria+%”或 portCode 如“+criteria+%”

关于java - 自动完成元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4131525/

相关文章:

javascript - 使用 CSS 隐藏输入后,文本输入框的自动完成下拉列表仍然存在

java - GWT 在页面加载时动态加载元素

java - Java中 '< >'的语法含义

java - 如何在java中定义可定制的RGB背景颜色?

visual-studio - 在 Visual Studio 2015 中禁用自动括号插入

Android 在一个结果中自动完成多个 textview 行

java - 在 smartGWT 中打开/保存文件

java:web.xml 中 com.isomorphic.servlet.DataSourceLoader 条目的 ClassNotFoundException

java - 如何避免在我的情况下返回 null?

java - java中log4j格式的打印