SlideShare una empresa de Scribd logo
1 de 18
©2016 GlobalLogic Inc.
Object-Relational Mapping
for dummies
Андрей Сидун
2
Обо мне
Андрей Сидун
• Программирую с 1989 (хотел
написать игру)
• За зарплату программирую 15 лет,
из них 6 на Java
• Люблю делиться знаниями,
поэтому читаю курсы на
протяжении 8 лет
3
История появления ORM
Нам нужно понять как развивались
технологии работы Java с базами
данных.
4
История появления ORM
Все-таки, развитие шло
не совсем так…
5
История появления ORM
…а скорее вот так
6
История появления ORM
Разные инструменты для разных задач:
• JDBC и ResultSet
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String coffeeName = rs.getString("COF_NAME");
}
• Data Access Object (DAO) для абстрагирования и инкапсулирования
доступа к источнику данных (JDBC).
DAO управляет соединением с источником данных для получения и
записи данных.
7
Что такое ORM?
wikipedia.org:
ORM (Object-relational mapping) — технология
программирования, которая связывает базы данных с концепциями
объектно-ориентированных языков программирования, создавая
«виртуальную объектную базу данных».
8
Что такое ORM?
Мартин Фаулер:
Паттерн Data Mapper (ORM) — это программная прослойка,
разделяющая объект и БД. Его обязанность — пересылать данные
между ними и изолировать их друг от друга.
При использовании Data Mapper'а объекты не нуждаются в знании о
существовании БД. Они не нуждаются в SQL-коде, и (естественно) в
информации о структуре БД.
9
Что такое ORM?
10
Что такое ORM?
• Задача ORM состоит в управлении трансляцией объектных
типов в записи баз данных и обратно.
• Основная проблема состоит в том, что объекты имеют
иерархическую структуру, а базы данных — реляционную.
11
Классы
• Классы определяют сущность
• Классы могут содержать данные и методы
• Классы могут наследовать данные и интерфейс других
классов
• В качестве данных классы могут содержать экземпляры
других классов, в том числе списки.
12
Базы данных
• Основным элементом БД является таблица
• Таблицы могут содержать только простые типы данных
• Таблицы не могут содержать массивы и списки
• Таблицы могут быть связаны внешними ключами
13
Примеры реляционной и объектной модели
CATALOG_ITEM отображается на иерархию
классов в зависимости от значения
ITEM_TYPE
Реляционная модель Объектная модель предметной области
14
Плюсы ORM
• Ручное преобразование (маппинг) большого числа таблиц в
объекты достаточно трудоемкий процесс, который ведет к
увеличению числа ошибок.
– ORM берет на себя операции по маппингу таблиц в объекты, абстрагируя
программиста от знания о конкретных СУБД.
• ORM обеспечивает механизм создания, изменения, удаления и
получения данных
• Управляет состоянием объектов. Отслеживает имеет ли объект
связь с базой данных.
– Объекты состояние которых может быть сохранено, а затем восстановлено
называются хранимыми или персистентными (от англ. «persistent» —
постоянный, устойчивый).
15
Минусы ORM
• Дополнительный слой абстракции может сказаться на
производительности.
• Решение простых задач может оказаться слишком сложным.
• ORM решение может не быть достаточно гибким.
• Дизайн системы может оказаться зависимым от конкретной ORM-
библиотеки.
• Вместе с ORM тяжело использовать хранимые процедуры БД.
16
Реализации ORM
• Hibernate/NHibernate www.hibernate.org (Java / .NET 1.1,2.0)
• Oracle® TopLink® (Java)
• Apache OpenJPA (Java)
• iBatis framework (Java, .NET) http://ibatis.apache.org/
• DataNucleus (Java) http://www.datanucleus.org/
• …
17
Литература и ссылки
• Мартин Фаулер “Архитектура корпоративных программных
приложений”. М., “Вильямс”, 2004
• http://en.wikipedia.org/wiki/Object-relational_mapping
18
Вопросы и контакты
Приз за лучший вопрос!!!
• Андрей Сидун
• andrii.sidun@globallogic.com
• skype: asidun

Más contenido relacionado

Destacado

Destacado (11)

Java 8 Intro - Core Features
Java 8 Intro - Core FeaturesJava 8 Intro - Core Features
Java 8 Intro - Core Features
 
How to Learn a Programming Language in 25 Minutes
How to Learn a Programming Language in 25 MinutesHow to Learn a Programming Language in 25 Minutes
How to Learn a Programming Language in 25 Minutes
 
Java Performance Boost
Java Performance BoostJava Performance Boost
Java Performance Boost
 
Take a Look at Akka-Java
Take a Look at Akka-JavaTake a Look at Akka-Java
Take a Look at Akka-Java
 
Nicety of Java 8 Multithreading
Nicety of Java 8 MultithreadingNicety of Java 8 Multithreading
Nicety of Java 8 Multithreading
 
Spring vs EJB
Spring vs EJBSpring vs EJB
Spring vs EJB
 
Commercial Development from the Inside
Commercial Development from the InsideCommercial Development from the Inside
Commercial Development from the Inside
 
Xin (Crossroads)
Xin (Crossroads)Xin (Crossroads)
Xin (Crossroads)
 
How Pony ORM translates Python generators to SQL queries
How Pony ORM translates Python generators to SQL queriesHow Pony ORM translates Python generators to SQL queries
How Pony ORM translates Python generators to SQL queries
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Антон Зотов - "Від інженера до AVP. Мій досвід побудови кар’єри в ІТ" Kharkiv...
Антон Зотов - "Від інженера до AVP. Мій досвід побудови кар’єри в ІТ" Kharkiv...Антон Зотов - "Від інженера до AVP. Мій досвід побудови кар’єри в ІТ" Kharkiv...
Антон Зотов - "Від інженера до AVP. Мій досвід побудови кар’єри в ІТ" Kharkiv...
 

Similar a Object-Relational Mapping for Dummies

основные понятия баз данных
основные понятия баз данныхосновные понятия баз данных
основные понятия баз данных
23padopi
 
основные понятия баз данных
основные понятия баз данныхосновные понятия баз данных
основные понятия баз данных
23padopi
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
Nikolay Samokhvalov
 
раздел 2 модели и типы данных
раздел 2  модели и типы данныхраздел 2  модели и типы данных
раздел 2 модели и типы данных
tatianabtt
 

Similar a Object-Relational Mapping for Dummies (20)

базы данных
базы данныхбазы данных
базы данных
 
14 - Базы данных. Основные объекты базы данных и язык SQL
14 - Базы данных. Основные объекты базы данных и язык SQL14 - Базы данных. Основные объекты базы данных и язык SQL
14 - Базы данных. Основные объекты базы данных и язык SQL
 
Microsoft access 2007
Microsoft access 2007Microsoft access 2007
Microsoft access 2007
 
Microsoft access 2007
Microsoft access 2007Microsoft access 2007
Microsoft access 2007
 
9946
99469946
9946
 
11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД
 
основные понятия баз данных
основные понятия баз данныхосновные понятия баз данных
основные понятия баз данных
 
основные понятия баз данных
основные понятия баз данныхосновные понятия баз данных
основные понятия баз данных
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БД
 
разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)
 
РИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigDataРИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigData
 
HighLoad systems: tips & tricks
HighLoad systems: tips & tricksHighLoad systems: tips & tricks
HighLoad systems: tips & tricks
 
Витрины данных - загрузка данных, разработка процессов ETL
Витрины данных - загрузка данных, разработка процессов ETLВитрины данных - загрузка данных, разработка процессов ETL
Витрины данных - загрузка данных, разработка процессов ETL
 
Coding like a sex
Coding like a sexCoding like a sex
Coding like a sex
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
10 субд
10 субд10 субд
10 субд
 
Presentation1
Presentation1Presentation1
Presentation1
 
разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)
 
раздел 2 модели и типы данных
раздел 2  модели и типы данныхраздел 2  модели и типы данных
раздел 2 модели и типы данных
 
Управление Данными. Лекция 1
Управление Данными. Лекция 1Управление Данными. Лекция 1
Управление Данными. Лекция 1
 

Más de GlobalLogic Ukraine

GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Ukraine
 

Más de GlobalLogic Ukraine (20)

GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
 
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
 
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxШтучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptx
 
Задачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptxЗадачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptx
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxЩо треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationСтрах і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic Education
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
 
GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"
 
C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"
 
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
 

Último

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 

Último (9)

Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 

Object-Relational Mapping for Dummies

  • 1. ©2016 GlobalLogic Inc. Object-Relational Mapping for dummies Андрей Сидун
  • 2. 2 Обо мне Андрей Сидун • Программирую с 1989 (хотел написать игру) • За зарплату программирую 15 лет, из них 6 на Java • Люблю делиться знаниями, поэтому читаю курсы на протяжении 8 лет
  • 3. 3 История появления ORM Нам нужно понять как развивались технологии работы Java с базами данных.
  • 4. 4 История появления ORM Все-таки, развитие шло не совсем так…
  • 6. 6 История появления ORM Разные инструменты для разных задач: • JDBC и ResultSet ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String coffeeName = rs.getString("COF_NAME"); } • Data Access Object (DAO) для абстрагирования и инкапсулирования доступа к источнику данных (JDBC). DAO управляет соединением с источником данных для получения и записи данных.
  • 7. 7 Что такое ORM? wikipedia.org: ORM (Object-relational mapping) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».
  • 8. 8 Что такое ORM? Мартин Фаулер: Паттерн Data Mapper (ORM) — это программная прослойка, разделяющая объект и БД. Его обязанность — пересылать данные между ними и изолировать их друг от друга. При использовании Data Mapper'а объекты не нуждаются в знании о существовании БД. Они не нуждаются в SQL-коде, и (естественно) в информации о структуре БД.
  • 10. 10 Что такое ORM? • Задача ORM состоит в управлении трансляцией объектных типов в записи баз данных и обратно. • Основная проблема состоит в том, что объекты имеют иерархическую структуру, а базы данных — реляционную.
  • 11. 11 Классы • Классы определяют сущность • Классы могут содержать данные и методы • Классы могут наследовать данные и интерфейс других классов • В качестве данных классы могут содержать экземпляры других классов, в том числе списки.
  • 12. 12 Базы данных • Основным элементом БД является таблица • Таблицы могут содержать только простые типы данных • Таблицы не могут содержать массивы и списки • Таблицы могут быть связаны внешними ключами
  • 13. 13 Примеры реляционной и объектной модели CATALOG_ITEM отображается на иерархию классов в зависимости от значения ITEM_TYPE Реляционная модель Объектная модель предметной области
  • 14. 14 Плюсы ORM • Ручное преобразование (маппинг) большого числа таблиц в объекты достаточно трудоемкий процесс, который ведет к увеличению числа ошибок. – ORM берет на себя операции по маппингу таблиц в объекты, абстрагируя программиста от знания о конкретных СУБД. • ORM обеспечивает механизм создания, изменения, удаления и получения данных • Управляет состоянием объектов. Отслеживает имеет ли объект связь с базой данных. – Объекты состояние которых может быть сохранено, а затем восстановлено называются хранимыми или персистентными (от англ. «persistent» — постоянный, устойчивый).
  • 15. 15 Минусы ORM • Дополнительный слой абстракции может сказаться на производительности. • Решение простых задач может оказаться слишком сложным. • ORM решение может не быть достаточно гибким. • Дизайн системы может оказаться зависимым от конкретной ORM- библиотеки. • Вместе с ORM тяжело использовать хранимые процедуры БД.
  • 16. 16 Реализации ORM • Hibernate/NHibernate www.hibernate.org (Java / .NET 1.1,2.0) • Oracle® TopLink® (Java) • Apache OpenJPA (Java) • iBatis framework (Java, .NET) http://ibatis.apache.org/ • DataNucleus (Java) http://www.datanucleus.org/ • …
  • 17. 17 Литература и ссылки • Мартин Фаулер “Архитектура корпоративных программных приложений”. М., “Вильямс”, 2004 • http://en.wikipedia.org/wiki/Object-relational_mapping
  • 18. 18 Вопросы и контакты Приз за лучший вопрос!!! • Андрей Сидун • andrii.sidun@globallogic.com • skype: asidun