我有一份州/县的名单,他们相应的城镇和每个城镇的相应城镇。
- State1
- City1
- Town1
- Town2
...
- City2
...
我需要一种方法将它们存储在我的企业级Java Web应用程序中。
必须保持实体之间的关系,即城镇属于一个城市,城市属于州/县。
数据的目的是为用户提供自动建议的城镇和城市,并输入文本框。
此数据可能偶尔会发生变化,需要更新(可能相当罕见)。
所以例如:
- 用户从下拉列表中选择state1。
- 他们现在将charchters'san'输入城市输入框
- 我想执行搜索并返回以state1中的'san'开头的城市列表。 (Ajax请求)。
我正在寻找那些可能不得不实现类似之前的人的反馈。
您是否使用过内存数据库,例如HSQL?
答案 0 :(得分: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>
然后,您可以像使用任何其他数据库一样使用上面定义的 dataSource ,并且可以在必要时切换到真正的数据库,而不会影响任何代码。
答案 1 :(得分:0)
您是否可以灵活地在中间使用搜索服务器?我对企业系统有类似的要求,并使用Apache Solr(基于Lucene的Search Server)。 Solr配置具有解析数据库和存储索引数据集合的选项。在用户界面中,Ajax请求(提交限制至至少按下2个字母)将调用API到Solr。
这个设置给了我惊人的快速结果。