Уровень Java O / R для SQL-сервера?

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

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
549
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

Подходят ли какие-либо из них особенно к заявленным условиям? Многопоточность (с конкуренцией) и SQL Server?

TREE 07.11.2008 23:10

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

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

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

Ответ принят как подходящий

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

Спящий режим:

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

iBATIS:

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

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

Хотя исходная проблема больше не актуальна, этот ответ является самой прямой попыткой ответить на вопрос.

TREE 02.07.2010 16:46

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

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

Очевидно, это некромантия сейчас комментировать. Но сейчас Cayenne прошел долгий путь. Хорошая документация и очень быстрая поддержка сообщества в их списке рассылки.

Nishant 12.01.2011 10:41

Другие вопросы по теме