【问题标题】:Is there a Java Data API independent of persistence technology是否有独立于持久性技术的 Java Data API
【发布时间】:2018-03-10 04:38:10
【问题描述】:

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

在 UI 应用程序很容易适应不断变化的数据层并且我们无法控制这些变化的情况下,我需要这个。例如,这些更改可能是

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

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

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

但到目前为止,我发现没有一个解决方案可以同时处理多种技术。

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

有什么想法吗?

【问题讨论】:

    标签: java mapping persistence


    【解决方案1】:

    Java Persistence API (JPA) 在这方面很常见。已经有许多供应商可用。如果需要,您还可以为自定义后端创建自己的 JPA 提供程序。

    通用和抽象 API 层的问题在于它受到所有其他可能提供者的“共同点”的限制。有时您必须打破这种抽象,以便以更高效、特定于平台的方式操作数据。在您的计划中注意这一点,并希望它能够顺利进行!

    【讨论】:

    • 我试试看。结合 EclipseLink+MOXy 和中间相遇映射
    【解决方案2】:

    解决方案是 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-03
      • 2017-02-08
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      相关资源
      最近更新 更多