是否存在独立于持久性技术的Java Data API

时间:2017-09-28 12:22:54

标签: java mapping persistence

我正在寻找一种独立于底层持久性技术访问数据的API。 CRUD和一些搜索能力就足够了。

我需要这样的情况,即UI应用程序应该很容易地采用不断变化的数据层,我们无法控制这些变化。这些变化可能是例如

  • 一些新的或更改的数据字段
  • 从表到树的结构变化
  • 从SOAP更改为REST
  • 从SQL更改为REST

对于某组持久性技术,有几种方法可以解决这个问题。例如

  • JPA使应用程序开发人员独立于SQL供应商
  • JSR 283提供了与底层CMS系统的独立性
  • MS ODBC驱动程序不仅可以透明地访问SQL,还可以访问CSV和Excel
  • Java-XML-Mappers(JAXB,...),好吧,它们根本不会使我们独立

但到目前为止我找不到的解决方案可以同时处理多种技术。

也许这将是坚持不懈的圣杯,但也许有一个解决方案,我只是没有找到它。

有什么想法吗?

enter image description here

2 个答案:

答案 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