【问题标题】:Java O/R layer for SQL server?SQL 服务器的 Java O/R 层?
【发布时间】:2010-09-21 07:42:39
【问题描述】:

我有一个需要与 MS SQL Server 数据库通信的 Java 服务器(不是基于 Web,更像是一个大型、多线程的独立应用程序)。

我刚刚参与了一个不同的项目,该项目将一个本土的 O/R 层从 oracle 移植到 SQL Server,但由于太多的 oracle 假设(主要是锁定),它遇到了严重的问题。那么我应该使用什么 O/R 层呢?

编辑:我听说过 Hibernate,但其他一切都很有用! 但具体来说,这些 API/框架是否有助于解决多线程环境中 SQL Server 锁定策略的特殊缺点?

【问题讨论】:

    标签: java sql-server database orm


    【解决方案1】:

    我建议Cayenne。它支持很多数据库。它也是开源的。但是没有那么多文件。您可以将 cayenne 与支柱一起使用。

    【讨论】:

    • 显然,现在评论是死灵法。但卡宴现在已经走了很长一段路。他们的邮件列表上有很好的文档和非常快速的社区支持。
    【解决方案2】:

    休眠很好。但是有不同风格的 Hibernate 实现。我建议使用 JPA 的 Hibernate 3.x (3.2?)。我通常也使用 Spring 2.5 作为业务逻辑的框架。 Hibernate 和 Spring 一起工作特别好,因为它们可以在一定程度上共享名称解析范围,从而减少了如何访问 O/R 对象的混乱。

    【讨论】:

      【解决方案3】:

      我使用过 Hibernate 和 iBATIS。选择其中一个取决于具体情况。

      休眠:

      • 对数据库架构更加挑剔
      • 为您生成大部分 sql
      • 更多功能
      • 更复杂

      iBATIS:

      • 当您想使用现有架构时效果更好
      • 需要你自己写sql
      • 更容易学习

      它们都适用于 SQL Server 并处理多线程。

      【讨论】:

      • 虽然原来的问题已经不相关了,但是这个答案最直接的尝试回答这个问题。
      【解决方案4】:

      我还将BEA Kodo 与Microsoft SQL Server 一起使用(回到Solarmetric Kodo 时)。当时,它的功能远比 Hibernate 和任何 JDO 实现丰富。情况已不再如此,尽管它仍然具有许多独特的性能/可扩展性功能。

      Hibernate 是当今最流行的一种。我个人最喜欢的是 TopLink。

      您要寻找的关键标准是 EJB3、Java Persistance API (JPA) 和 Java 数据对象 (JDO)。 JPA 可能是其中最重要的一个,因为它更易于使用,并且是用于使用 Hibernate、JDO、Toplink、EJB3 等的通用 API。

      【讨论】:

        【解决方案5】:

        休眠是通常的选择。除此之外,您还可以查看 Oracle TopLink、iBatis 以及任何适合您的套件。

        【讨论】:

        • 它们中的任何一个是否特别适合所述条件?多线程(有争用)和 SQL Server?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-20
        • 1970-01-01
        • 2018-01-17
        • 1970-01-01
        • 2014-08-15
        • 2011-06-26
        相关资源
        最近更新 更多