1 / 37

Обектно-ориентирана персистенция с Hibernate

Презентатор: Лъчезар Добрев 30 октомври 2004г. Обектно-ориентирана персистенция с Hibernate. Обектно-ориентирана персистенция с Hibernate. Принципи на Data Persistance Принципи на Object Persistance Data Persistance и Object Persistance Hibernate фукнционалност Плюсове на Hibernate

Download Presentation

Обектно-ориентирана персистенция с Hibernate

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Презентатор: Лъчезар Добрев 30 октомври 2004г. Обектно-ориентирана персистенция с Hibernate

  2. Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето

  3. Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето

  4. Data Persistance • Появява се заради нуждата от запазване на данни за дълго време. • Таблично представяне на данни • Адресиране на данните с Primary Key • Връзки между данните въз основа на Foreign Key релации • Сложно надграждане и разширяване

  5. Принципи наData Persistance • Data Warehouse • основното предназначение на базите данни • Data Mining • задължително за модерните бази данни • Data Processing • допълнителна функционалност, намираща приложение в Data-Oriented приложенията.

  6. Принципи наData Persistance • Нужда от предварителна подготовка на данните, т.е. всичко, от което имаме нужда трябва да бъде предвидено. • Не се справя добре с пост-продукционно надграждане. • Дългодоишният опит, натрупан през десетките години разработка на бази данни води до отлична производителност.

  7. Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето

  8. Обектно-ориентирана персистенция • Появява се за да покрие нуждите на ООП • Обектно представяне на данните • Невидима адресация, премахване на нуждата от enforced данни (ID). • Връзки въз основа на Object Graph, премахване на constraint релациите (FK). • Обектно ориентирано надграждане, разширяване и полиморфизъм.

  9. Vehicle Truck Body Engine Chasis Carroserie Принципи наObject Persistance Обектно-ориентираното програмиране се основава на връзките между обектите в една система. Връзките между обектите се изграждат въз основа на тяхната естествена свързаност. Нужно е тази свързаност да може да бъде запазвана и възстановявана (persisted).

  10. Принципи наObject Persistance Furniture HouseObject Част от обектната парадигма е и полиморфизма на обектите. Възможността даден обект да “наследи” функционалността на своя “родител” и да я разшири или промени доведе до революцията в програмирането. За да бъде една персистентна система обектно ориентирана полиморфизмът на обектите трябва да се записва и възстановява. Chair Table Stool ArmChair ElectricChair

  11. Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето

  12. Object Persistance Обектно-ориентирани данни Специализиран модел Видът на данните се разбира само от специалисти Разглежда реалните данни съобразно самите данни Сравнение Data Persistance • Структурно-ориентирани данни • 'Универсален' модел • 'Човешки', познат вид на данните • Разглежда реалните данни във вид удобен за софтуера

  13. Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето

  14. HibernateRDBMS функционалност • Различни бази данни • Конфигуратор за различните БД - Dialect • Общата част на базите данни • Таблици, полета, ключове (Primary Key) • Constraints (FK, Unique, etc.) • Table joins. Частично фунции и процедури. • Специфичността на базите данни • Автогенерация на ключове (ID) • Връзки между типовете данни.

  15. HibernateRDBMS функционалност Използвайки само стандартни обекти приложението се отделя от базата данни напълно. Конфигурационните файлове на Hibernate не са част от приложението. Възможни са пост-продуктивни промени по метода на персистенция. Персистентните обекти не се задължават с каквато и да било функционалност.

  16. HibernateRDBMS функционалност

  17. HibernateRDBMS функционалност

  18. SAP DB Interbase Pointbase Progress FrontBase Ingres Informix FrontBase Поддържани бази данни(извадка) • Oracle • DB2 • Sybase • MS SQL Server • PostgreSQL • MySQL • HypersonicSQL • Mckoi SQL

  19. Поддържани методиза генериране на PK • Identity (autoincrement) columns • Sequences • UUID algorithm • HI/LO algorithm

  20. Hibernateобектна функционалност • Минимални изисквания и ограничения • Прозрачност на персистенцията • Hibernate Query Language (HQL) • Обектно ориентирана персистенция • Персистенция на обектните данни • Персистенция на връзките • Мултипликативност (multiplicity) • Насоченост • Агрегативност, Композитивност • Полиморфна персистенция • Конфигурируемост на персистенцията

  21. Hibernate функционалностМинимални изисквания • Изискванията към класовете, които ще се записват/четат са минимални • Няма интерфейси за имплементиране • Няма класове за наследяване • Няма допълнителни класове/интерфейси • Минимални изисквания към конструкторите • Почти никакви изисквания за видимост • Няма enforced стандарти • Минимални изисквания към процесите

  22. Hibernate функционалностМинимални изисквания public class Cat { private String id; // Optional private String name; // Property field private char sex; // Property field private float weight; // Property field public Cat() { } // Default constructor Optional // Property getters/setters public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name=name; } ... }

  23. Hibernate функционалностПрозрачност • С персистентните обекти се работи като с обикновени POJO обекти • Минимални изисквания при работа с колекции и връзки • Минимални изисквания за code workflow • Минимални изисквания за error correction

  24. Hibernate функционалностHibernate Query Language • “The missing link” - обектен query език. • Предоставя възможност за “ровичкане” и навигация из обектната база данни. • Предоставя “data queries”. • Предоставя възможност за функции. • Подобен на SQL и EJBQL.

  25. Hibernate функционалностHibernate Query Language SELECTFROM org.bars.Address FROM User u WHERE u.name = ? SELECT mate FROM Cat AS cat JOIN cat.mate AS mate WHERE cat.name = ? SELECTCOUNT(*) FROM Cat SELECTAVG(mate.weight) FROM Cat AS cat JOIN cat.mate AS mate WHERE cat.color LIKE 'BLACK' SELECT customer, product FROM Customer customer, Product product JOIN customer.purchases purchase WHERE product = purchase.product

  26. Hibernate функционалностОбектна ориентираност • Данните • Информацията от обектите • Връзките • Релации и мултипликативност, колекции • Класовата структура • Различни методи за персистенция • Table-per-class • Table-per-subclass • Table-per-concreteclass

  27. Hibernate функционалностКонфигурируемост • Decoupling на класове и конфигурации • Конфигурационни файлове, покриващи изцяло функционалността на Hibernate. • Декларативна персистенция. • Конфигурационните файлове показват кое как да се записва/чете • Oставя се работата в кода на Hibernate.

  28. Hibernate функционалностКонфигурируемост <hibernate-mapping> <classname="eg.Parent"> <idname="id"><generatorclass="native"/></id> <setname="children" lazy="true" table="childset"> <keycolumn="parent_id"/> <many-to-many class="eg.Child" column="child_id"/> </set> </class> <classname="eg.Child"> <idname="id"><generatorclass="native"/></id> <propertyname="name"/> </class> </hibernate-mapping>

  29. Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето

  30. Плюсове на Hibernate • Прозрачен, абсртактивен слой за персистенция. • Минимални разходи за интеграция. • Опростен подход към БД. • Множество TOOLS и 3-RD party продукти. • Голяма група разработчици.

  31. Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето

  32. Минуси на Hibernate • Няма смесване на полиморфни методики. • Твърдо свързване, няма алтернативи. • Други?

  33. Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето

  34. Бъдещето на Hibernate • Повече поддържани бази данни. • Подобряване и добавяне на контролните услуги. • Връзка с други езици и системи. • Миграционни процедури от/към други персистентни системи. • EJB 3.0 – Ала Hibernate персистенция. • Hibernate .NET???

  35. http://www.hibernate.org/Homesite на Hibernate. http://sourceforge.net/ Множество ресурси за разработка http://www.theserverside.com/Често се появяват статии на темата. Ресурси по темата

  36. Time for twenty questions... Въпроси/Отговори?

  37. Персистентна система за адресна книга. Демонстрация

More Related