370 likes | 442 Views
Презентатор: Лъчезар Добрев 30 октомври 2004г. Обектно-ориентирана персистенция с Hibernate. Обектно-ориентирана персистенция с Hibernate. Принципи на Data Persistance Принципи на Object Persistance Data Persistance и Object Persistance Hibernate фукнционалност Плюсове на Hibernate
E N D
Презентатор: Лъчезар Добрев 30 октомври 2004г. Обектно-ориентирана персистенция с Hibernate
Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето
Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето
Data Persistance • Появява се заради нуждата от запазване на данни за дълго време. • Таблично представяне на данни • Адресиране на данните с Primary Key • Връзки между данните въз основа на Foreign Key релации • Сложно надграждане и разширяване
Принципи наData Persistance • Data Warehouse • основното предназначение на базите данни • Data Mining • задължително за модерните бази данни • Data Processing • допълнителна функционалност, намираща приложение в Data-Oriented приложенията.
Принципи наData Persistance • Нужда от предварителна подготовка на данните, т.е. всичко, от което имаме нужда трябва да бъде предвидено. • Не се справя добре с пост-продукционно надграждане. • Дългодоишният опит, натрупан през десетките години разработка на бази данни води до отлична производителност.
Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето
Обектно-ориентирана персистенция • Появява се за да покрие нуждите на ООП • Обектно представяне на данните • Невидима адресация, премахване на нуждата от enforced данни (ID). • Връзки въз основа на Object Graph, премахване на constraint релациите (FK). • Обектно ориентирано надграждане, разширяване и полиморфизъм.
Vehicle Truck Body Engine Chasis Carroserie Принципи наObject Persistance Обектно-ориентираното програмиране се основава на връзките между обектите в една система. Връзките между обектите се изграждат въз основа на тяхната естествена свързаност. Нужно е тази свързаност да може да бъде запазвана и възстановявана (persisted).
Принципи наObject Persistance Furniture HouseObject Част от обектната парадигма е и полиморфизма на обектите. Възможността даден обект да “наследи” функционалността на своя “родител” и да я разшири или промени доведе до революцията в програмирането. За да бъде една персистентна система обектно ориентирана полиморфизмът на обектите трябва да се записва и възстановява. Chair Table Stool ArmChair ElectricChair
Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето
Object Persistance Обектно-ориентирани данни Специализиран модел Видът на данните се разбира само от специалисти Разглежда реалните данни съобразно самите данни Сравнение Data Persistance • Структурно-ориентирани данни • 'Универсален' модел • 'Човешки', познат вид на данните • Разглежда реалните данни във вид удобен за софтуера
Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето
HibernateRDBMS функционалност • Различни бази данни • Конфигуратор за различните БД - Dialect • Общата част на базите данни • Таблици, полета, ключове (Primary Key) • Constraints (FK, Unique, etc.) • Table joins. Частично фунции и процедури. • Специфичността на базите данни • Автогенерация на ключове (ID) • Връзки между типовете данни.
HibernateRDBMS функционалност Използвайки само стандартни обекти приложението се отделя от базата данни напълно. Конфигурационните файлове на Hibernate не са част от приложението. Възможни са пост-продуктивни промени по метода на персистенция. Персистентните обекти не се задължават с каквато и да било функционалност.
SAP DB Interbase Pointbase Progress FrontBase Ingres Informix FrontBase Поддържани бази данни(извадка) • Oracle • DB2 • Sybase • MS SQL Server • PostgreSQL • MySQL • HypersonicSQL • Mckoi SQL
Поддържани методиза генериране на PK • Identity (autoincrement) columns • Sequences • UUID algorithm • HI/LO algorithm
Hibernateобектна функционалност • Минимални изисквания и ограничения • Прозрачност на персистенцията • Hibernate Query Language (HQL) • Обектно ориентирана персистенция • Персистенция на обектните данни • Персистенция на връзките • Мултипликативност (multiplicity) • Насоченост • Агрегативност, Композитивност • Полиморфна персистенция • Конфигурируемост на персистенцията
Hibernate функционалностМинимални изисквания • Изискванията към класовете, които ще се записват/четат са минимални • Няма интерфейси за имплементиране • Няма класове за наследяване • Няма допълнителни класове/интерфейси • Минимални изисквания към конструкторите • Почти никакви изисквания за видимост • Няма enforced стандарти • Минимални изисквания към процесите
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; } ... }
Hibernate функционалностПрозрачност • С персистентните обекти се работи като с обикновени POJO обекти • Минимални изисквания при работа с колекции и връзки • Минимални изисквания за code workflow • Минимални изисквания за error correction
Hibernate функционалностHibernate Query Language • “The missing link” - обектен query език. • Предоставя възможност за “ровичкане” и навигация из обектната база данни. • Предоставя “data queries”. • Предоставя възможност за функции. • Подобен на SQL и EJBQL.
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
Hibernate функционалностОбектна ориентираност • Данните • Информацията от обектите • Връзките • Релации и мултипликативност, колекции • Класовата структура • Различни методи за персистенция • Table-per-class • Table-per-subclass • Table-per-concreteclass
Hibernate функционалностКонфигурируемост • Decoupling на класове и конфигурации • Конфигурационни файлове, покриващи изцяло функционалността на Hibernate. • Декларативна персистенция. • Конфигурационните файлове показват кое как да се записва/чете • Oставя се работата в кода на Hibernate.
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>
Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето
Плюсове на Hibernate • Прозрачен, абсртактивен слой за персистенция. • Минимални разходи за интеграция. • Опростен подход към БД. • Множество TOOLS и 3-RD party продукти. • Голяма група разработчици.
Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето
Минуси на Hibernate • Няма смесване на полиморфни методики. • Твърдо свързване, няма алтернативи. • Други?
Обектно-ориентирана персистенция с Hibernate • Принципи на Data Persistance • Принципи на Object Persistance • Data Persistance и Object Persistance • Hibernate фукнционалност • Плюсове на Hibernate • Недостатъци на Hibernate • Какво следва, какво още, бъдещето
Бъдещето на Hibernate • Повече поддържани бази данни. • Подобряване и добавяне на контролните услуги. • Връзка с други езици и системи. • Миграционни процедури от/към други персистентни системи. • EJB 3.0 – Ала Hibernate персистенция. • Hibernate .NET???
http://www.hibernate.org/Homesite на Hibernate. http://sourceforge.net/ Множество ресурси за разработка http://www.theserverside.com/Често се появяват статии на темата. Ресурси по темата
Time for twenty questions... Въпроси/Отговори?
Персистентна система за адресна книга. Демонстрация