0

我有一份州/县列表,它们对应的城市和每个城市对应的城市。

- State1
  - City1
    - Town1
    - Town2
    ...
  - City2
  ...

我需要一种将这些存储在我的企业 Java Web 应用程序中的方法。

必须保持实体之间的关系,即城镇属于一个城市,而城市属于一个州/县。

数据的目的是让用户可以看到自动推荐的城镇和城市,他们可以在文本框中输入内容。

此数据可能偶尔会更改并需要更新(可能相当罕见)。

例如:
- 用户从下拉列表中选择 state1。
- 他们现在在城市输入框中输入字符“san”。
- 我想执行搜索并返回 state1 中以“san”开头的城市列表。(阿贾克斯请求)。

我正在寻找以前可能不得不实施类似的东西的人的反馈。

您是否使用过诸如 HSQL 之类的内存数据库?

4

2 回答 2

1

是的,我以前用过 HSQL 来处理这样的事情。效果很好。将您的参考数据定义为 SQL 插入语句的集合,并运行架构创建脚本,以及在应用启动时插入参考数据。

Spring 现在对嵌入式数据库有很好的支持:http:
//static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/jdbc.html#jdbc-embedded-database-support

<jdbc:embedded-database id="dataSource">
    <jdbc:script location="classpath:schema.sql"/>
    <jdbc:script location="classpath:reference-data.sql"/>
</jdbc:embedded-database>

然后,您可以像使用任何其他 DB 一样使用上面定义的dataSource ,并且可以在将来根据需要切换到真正的 DB,而不会影响任何代码。

于 2013-07-10T16:15:49.413 回答
0

您是否可以灵活地在两者之间使用搜索服务器?我对企业系统有类似的要求,并使用了 Apache Solr(基于 Lucene 的搜索服务器)。Solr 配置具有解析数据库和存储索引数据集合的选项,来自用户界面的 Ajax 请求(提交限制直到至少按下 2 个字母)将调用 Solr 的 API。

这个设置给了我惊人的快速结果。

于 2013-07-10T16:19:52.583 回答