SQL server的Java O/R层?
我有一个java服务器(不是基于web的,更像是一个大的、多线程的独立应用程序),需要与MS SQL server数据库通信 我刚刚参与了一个不同的项目,该项目将一个自行开发的O/R层从oracle移植到SQL Server,但由于oracle的假设太多(主要是锁定),它遇到了重大问题。那么我应该使用什么O/R层呢 编辑:我听说过Hibernate,但是其他的东西都很有用!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是通常的选择
具体来说,这些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?虽然最初的问题已不再相关,但这个答案最直接地试图回答这个问题。显然,这是现在评论的死灵术。但如今,卡宴已经走过了漫长的道路。他们的邮件列表上有很好的文档和非常快速的社区支持。