Объекты данных Java
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( июнь 2010 г. ) |
Объекты данных Java ( JDO ) — это спецификация Java объектов сохранения . Одной из его особенностей является прозрачность служб персистентности для модели предметной области . Постоянные объекты JDO — это обычные языка программирования Java классы ( POJO ); им не требуется реализовывать определенные интерфейсы или расширять специальные классы. JDO 1.0 был разработан в рамках процесса сообщества Java как JSR 12 . JDO 2.0 был разработан под JSR 243 и выпущен 10 мая 2006 года. JDO 2.1 был завершен в феврале 2008 года и разработан проектом Apache JDO . JDO 2.2 был выпущен в октябре 2008 года. JDO 3.0 был выпущен в апреле 2010 года.
Сохранение объекта определяется во внешних метафайлах XML , которые могут иметь расширения, зависящие от поставщика. Поставщики JDO предоставляют разработчикам средства расширения , которые изменяют скомпилированные файлы классов Java, чтобы их можно было прозрачно сохранять. (Обратите внимание, что расширение байт-кода не требуется спецификацией JDO, хотя это обычно используемый механизм для реализации требований спецификации JDO.) В настоящее время поставщики JDO предлагают несколько вариантов сохранения, например, в RDBMS , в OODB или в файлы. .
Расширенные классы JDO переносимы между реализациями разных поставщиков. После улучшения класс Java можно использовать с продуктом JDO любого поставщика.
JDO интегрируется с Java EE несколькими способами. Прежде всего, реализация поставщика может быть предоставлена в виде соединителя JEE. [ объяснить ] . Во-вторых, JDO может работать в контексте сервисов транзакций JEE .
JDO против EJB3 против JPA
[ редактировать ]Спецификация Enterprise JavaBeans 3.0 (EJB3) также охватывает сохранение, как и EJB v2 с Entity Beans . Между двумя органами по стандартизации возникали конфликты по поводу превосходства. JDO имеет несколько коммерческих реализаций.
В конце концов, постоянство было «вырвано» из «EJB3 Core», и был сформирован новый стандарт — Java Persistence API (JPA). JPA использует javax.persistence
пакет и впервые был указан в отдельном документе в спецификации EJB3 JSR 220 , но позже был перенесен в отдельную спецификацию JSR 317 . Существенно, javax.persistence
потребует не контейнера EJB и, следовательно, будет работать и в среде Java SE, как это всегда было в JDO. JPA, однако, является стандартом объектно-реляционного отображения (ORM), тогда как JDO является одновременно стандартом объектно-реляционного отображения и стандартом прозрачного сохранения объектов. JDO, с точки зрения API, не зависит от технологии базового хранилища данных, тогда как JPA ориентирован на хранилища данных РСУБД (хотя есть несколько поставщиков JPA, которые поддерживают доступ к нереляционным хранилищам данных через API JPA, например DataNucleus и ОбъектБД).
Ведущие коммерческие реализации JDO и проекты с открытым исходным кодом также предлагают реализацию JPA API в качестве альтернативного доступа к своим базовым механизмам персистентности, которые раньше предоставлялись исключительно через JDO в исходных продуктах. Существует множество реализаций JDO с открытым исходным кодом.
Новые возможности JDO версии 2, которых нет в версии 1
[ редактировать ]- Концепция графов отключенных объектов
- Стандартизированные дескрипторы сопоставления ORM (для реализаций JDO на основе ORM)
- Улучшения JDOQL (однострочная форма; обязательна поддержка дополнительных методов String, Map и Math)
- Получите, например,
Connection
отjavax.jdo.PersistenceManager
- Подробнее: именованные запросы (pm.newNamedQuery), FetchPlan, последовательность, удаление по запросу, несколько пользовательских объектов в PM
Эталонные реализации JDO
[ редактировать ]- JDO 1.0: FOStore
- JDO 2.0: JPOX 1.1
- JDO 2.1: JPOX 1.2
- JDO 2.2: DataNucleus AccessPlatform 1.0.1
- JDO 3.0: Платформа доступа DataNucleus 2.1.0
- JDO 3.1: Платформа доступа DataNucleus 3.2.0
- JDO 3.2: Платформа доступа DataNucleus 5.2.0
См. также
[ редактировать ]- Объектно-реляционное отображение
- База данных объектов
- API сохранения Java (JPA)
- DataNucleus
- ОбъектБД
- АктивJPA
Библиография
[ редактировать ]- Джордан, Дэвид; Рассел, Крейг (22 апреля 2003 г.). Объекты данных Java (1-е изд.). О'Рейли Медиа . п. 384. ИСБН 0-596-00276-9 .
- Тьяги, Самир; Форбургер, Майкл; Маккаммон, Кейрон; Бобзин, Хейко (21 сентября 2003 г.). Основные объекты данных Java (1-е изд.). Прентис Холл . п. 576. ИСБН 0-13-140731-7 .
- Эццио, Дэвид (6 июня 2003 г.). Использование и понимание объектов данных Java (1-е изд.). Апресс . п. 456. ИСБН 1-59059-043-0 . Архивировано из оригинала 23 декабря 2010 года . Проверено 8 февраля 2010 г.