Уровень Java O / R для сервера SQL? - PullRequest
3 голосов
/ 07 ноября 2008

У меня есть java-сервер (не веб-ориентированный, скорее как большое многопоточное автономное приложение), который должен общаться с базой данных MS SQL Server.

Я только что работал над другим проектом, который портировал домашний слой O / R с оракула на SQL Server, и он столкнулся с серьезными проблемами из-за слишком большого числа предположений оракула (в основном блокировка). Так какой слой O / R я должен использовать?

Редактировать: я слышал о Hibernate, но все остальное полезно! Тем не менее, помогает ли какой-либо из этих API / каркасов устранить специфические недостатки стратегии блокировки SQL-серверов в многопоточной среде?

Ответы [ 5 ]

6 голосов
/ 07 ноября 2008

Hibernate - это обычный выбор. Кроме того, вы можете взглянуть на Oracle TopLink, iBatis, что вам больше подходит.

2 голосов
/ 10 ноября 2008

Я предлагаю Cayenne . Он поддерживает множество баз данных. Это тоже открытый исходный код. Но не так много документов. Вы можете использовать Cayenne со стойками.

2 голосов
/ 07 ноября 2008

Я использовал Hibernate и iBATIS. Выбор одного из другого зависит от ситуации.

Hibernate:

  • гораздо требовательнее относится к схеме базы данных
  • генерирует большую часть sql для вас
  • больше возможностей
  • более сложный

Ibatis:

  • работает лучше, если вы хотите работать с существующей схемой
  • требует от вас написать собственный sql
  • легче учиться

Они оба хорошо работают с SQL Server и поддерживают многопоточность.

1 голос
/ 07 ноября 2008

Я также использовал BEA Kodo с Microsoft SQL Server (тогда, когда это было Solarmetric Kodo). В то время он был гораздо более функциональным, чем Hibernate и любая реализация JDO. Это уже не так, хотя он по-прежнему обладает рядом уникальных функций производительности / масштабируемости.

Hibernate является самым популярным на сегодняшний день. Мой личный фаворит - TopLink.

Ключевыми стандартами, которые вы хотите найти, являются EJB3, Java Persistance API (JPA) и объекты данных Java (JDO). JPA, вероятно, является самым важным из всех, поскольку его проще использовать, и он предназначен в качестве общего API для использования Hibernate, JDO, Toplink, EJB3 и т. Д.

0 голосов
/ 08 ноября 2008

Hibernate это хорошо. Но есть разные варианты реализации Hibernate. Я предлагаю Hibernate 3.x (3.2?) С JPA. Я также обычно использую Spring 2.5 в качестве основы для бизнес-логики. Hibernate и Spring работают особенно хорошо вместе, потому что они могут совместно использовать области разрешения имен, что уменьшает путаницу при доступе к объектам O / R.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...