我有一个像这样的数据库表
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/