我正在寻找一种独立于底层持久性技术访问数据的API。 CRUD和一些搜索能力就足够了。
我需要这样的情况,即UI应用程序应该很容易地采用不断变化的数据层,我们无法控制这些变化。这些变化可能是例如
对于某组持久性技术,有几种方法可以解决这个问题。例如
但到目前为止我找不到的解决方案可以同时处理多种技术。
也许这将是坚持不懈的圣杯,但也许有一个解决方案,我只是没有找到它。
有什么想法吗?
答案 0 :(得分:1)
Java Persistence API(JPA)非常常见。有许多提供商已经可用。如果需要,您还可以为自定义后端创建自己的JPA Provider。
普通和抽象API层的问题在于它受到共同标准的限制"跨所有其他可能的提供商。有时您必须打破这种抽象,以更有效,特定于平台的方式操作数据。在你的计划中要注意这一点,并希望它能很好地运作!
答案 1 :(得分:0)
解决方案是 JDO Java数据对象。
除了JPA之外,还有不仅仅是RDBMS系统的实现。此外,功能列表可以看作是JPA的超集。
JDO不如JPA受欢迎,虽然很老,因为它的第一个JRS是JSR-12。它还活着;规范3.1的最新更新于2015年完成。
在此处查找有关JDO的一些信息:http://db.apache.org/jdo/index.html
一个全面的实现是DataNucleus,因为它支持许多持久性技术:http://www.datanucleus.org/index.html
- 支持的API:JDO 3.2,JPA 2.2 +,REST
- 支持的映射:JDO,JPA
- 支持的数据存储:RDBMS,Excel,OOXML,ODF,XML,HBase,MongoDB,Cassandra,Neo4j,JSON,Amazon S3,GoogleStorage,LDAP