Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL server的Java O/R层?_Java_Sql Server_Database_Orm - Fatal编程技术网

SQL server的Java O/R层?

SQL server的Java O/R层?,java,sql-server,database,orm,Java,Sql Server,Database,Orm,我有一个java服务器(不是基于web的,更像是一个大的、多线程的独立应用程序),需要与MS SQL server数据库通信 我刚刚参与了一个不同的项目,该项目将一个自行开发的O/R层从oracle移植到SQL Server,但由于oracle的假设太多(主要是锁定),它遇到了重大问题。那么我应该使用什么O/R层呢 编辑:我听说过Hibernate,但是其他的东西都很有用! 具体来说,这些API/框架是否有助于解决多线程环境中SQL Server锁定策略的特殊缺点?Hibernate是通常的选择

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

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

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

Hibernate是通常的选择。除此之外,您还可以查看Oracle TopLink、iBatis以及您最喜欢的任何套件。

我还使用了Microsoft SQL Server(在Solarmetric Kodo时代)。当时,它的功能远比Hibernate和任何JDO实现丰富。情况不再如此,尽管它仍然有许多独特的性能/可伸缩性特性

Hibernate是目前最流行的一种。我个人最喜欢的是TopLink


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

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

休眠:

  • 对数据库模式更挑剔
  • 为您生成大部分sql
  • 更多功能
  • 更复杂
伊巴蒂斯:

  • 当您希望使用现有架构时,效果会更好
  • 要求您编写自己的sql
  • 易学

它们都能很好地与SQL Server配合使用,并能处理多线程。

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

我建议。它支持许多数据库。它也是开源的。但没有这么多的文件。您可以使用带支柱的cayenne

其中是否有特别适合所述条件的?多线程(有争用)和SQL Server?虽然最初的问题已不再相关,但这个答案最直接地试图回答这个问题。显然,这是现在评论的死灵术。但如今,卡宴已经走过了漫长的道路。他们的邮件列表上有很好的文档和非常快速的社区支持。