Kurs programowania aplikacji bazodanowych

Podobne dokumenty
Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013

Kurs programowania aplikacji bazodanowych

Projektowanie aplikacji z bazami danych

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2014

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Podejście obiektowe do relacyjnych baz danych Hibernate.

JAVA PERSISTENCE API CZĘŚĆ 2 ASPEKTY ZAAWANSOWANE. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Programowanie w Ruby

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Podstawy frameworka Spring

Programowanie obiektowe

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Technologie baz danych

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Kurs WWW. Paweł Rajba.

Programowanie w Ruby

Wzorce logiki dziedziny

Wprowadzenie do Doctrine ORM

Paweł Rajba

Backend Administratora

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2015

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Baza danych sql. 1. Wprowadzenie

Podręcznik użytkownika produktu WebSphere Adapter for Oracle E-Business Suite Wersja 7, wydanie 0, pakiet składników Feature Pack 2

Java Persistence API - zagadnienia zaawansowane

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Wykład 2. Relacyjny model danych

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

1. Mapowanie diagramu klas na model relacyjny.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Programowanie w Ruby

Program szkolenia: Symfony, nowoczesny framework PHP

Język Java część 2 (przykładowa aplikacja)

Wdrożenie do projektu

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Aplikacje w środowisku Java

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Dziedziczenie. Tomasz Borzyszkowski

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET

Krzysztof Kadowski. PL-E3579, PL-EA0312,

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Oracle PL/SQL. Paweł Rajba.

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Programowanie obiektowe

Wprowadzenie do systemów informacyjnych

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Programowanie obiektowe

Specyfikacja implementacyjna aplikacji serwerowej

emszmal 3: Automatyczne księgowanie przelewów w menadżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Dokumentacja do API Javy.

Diagramy klas. dr Jarosław Skaruz

Instrukcja laboratoryjna nr.4

Programowanie obiektowe. Obiekt Klasa Składnia klasy: Interfejsy Składnia interfejsu: Metody Składnia instrukcji Sub: Składnia instrukcji function:

Programowanie obiektowe

Programowanie w języku Java WYKŁAD

Laboratorium 6 Tworzenie bloga w Zend Framework

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Baza danych. Baza danych to:

Wprowadzenie do baz danych

Systemy baz danych. mgr inż. Sylwia Glińska

Projektowanie i programowanie aplikacji biznesowych. Wykład 2

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Bazy danych. Wykład 4: Model SERM. dr inż. Magdalena Krakowiak

Kurs programowania aplikacji bazodanowych

METODY INŻYNIERII WIEDZY ASOCJACYJNA REPREZENTACJA POWIĄZANYCH TABEL I WNIOSKOWANIE IGOR CZAJKOWSKI

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.

PRZEWODNIK PO PRZEDMIOCIE

Klasy cd. Struktury Interfejsy Wyjątki

Zasady transformacji modelu DOZ do projektu tabel bazy danych

FUNKCJE SZBD. ZSE - Systemy baz danych 1

Zaawansowane Aplikacje Internetowe

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Instrukcja logowania i realizacji podstawowych transakcji w systemie bankowości internetowej dla klientów biznesowych BusinessPro.

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi.

Język Java część 2 (przykładowa aplikacja)

Utwórz klucz podstawowy relacji na podstawie unikalnego identyfikatora encji. podstawie kluczy podstawowych wiązanych relacji.

Technologie i usługi internetowe cz. 2

Ruby i Ruby on Rails. Mateusz Drożdżyński

Technologia informacyjna

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Transkrypt:

Wykład 6 Instytut Informatyki Uniwersytet Wrocławski

Plan wykładu CastleProject i wzorzec ActiveRecord Wybrane możliwości Castle ActiveRecord Inicjalizja i konfiguracja Tworzenie klasy encji, dziedziczenie i komponenty Pobieranie obiektów

CastleProject i wzorzec ActiveRecord CastleProject: http://www.castleproject.org/ Co wchodzi w skład CastleProject MonoRail framework MVC ActiveRecord implementacja wzorca Active Record w oparciu o NHibernate MicroKernel lekka implementacja wzorca Inversion of Control WindsorContainer rozszerzona wersja MicroKernel Krótka charakterystyka wzorca ActiveRecord Skojarzenie wiersza tabeli z obiektem Metody obiektu działają na jednym wierszu Implementacja operacji CRUD Implementacja logiki biznesowej

Wybrane możliwości Castle ActiveRecord Automatyczne generowanie i aktualizowanie schematu bd Automatyczna implementacja operacji CRUD Mapowanie umożliwia realizację: Kluczy głównych Kolumn wraz z blobami Relacji (wszystkie typy) Sesji i transakcji Leniwego ładowania Implementacja logiki biznesowej

Konfiguracja W celu skonfigurowania framework a niezbędne jest zdefiniowane 4 parametrów: hibernate.connection.driver class hibernate.dialect hibernate.connection.provider hibernate.connection.connection string Konfiguracja możemy utworzyć na następujące spoosoby Hashtable properties = new Hashtable(); properties.add(... ) InPlaceConfigurationSource src = new InPlaceConfigurationSource(); src.add( typeof( ActiveRecordBase ), properties ); XmlConfigurationSource src = new XmlConfigurationSource( "AR.xml" ); IConfigurationSource src = ActiveRecordSectionHandler.Instance; (w tym przypadku konfiguracja jest pobierana z pliku konfiguracyjnego aplikacji)

Inicjalizacja Możemy ją przeprowadzić na dwa sposoby: ActiveRecordStarter.Initialize( src, typeof( Osoba ) ); ActiveRecordStarter.Initialize( Assembly.GetAssembly( typeof( Osoba ) ), src ); ActiveRecordStarter.Initialize( Assembly.Load( "FirstExample"), src ); W drugim przypadku zaczytywane są wszystkie typy publiczne warto mieć assembly tylko dla klas encji zaczytywanie nie będzie się niepotrzebnie trwać za długo

Przykład FirstExample

Klasy encji Wprowadzenie Klasa staje się klasę utrwalaną poprzez określenie atrybutu ActiveRecordAttribute Dodatkowo można podać parametr typu string, który określa nazwę odpowiadającej tabeli oraz dziedziczenia z klasy ActiveRecordBase Klasa ma schemat: using Castle.ActiveRecord; [ActiveRecord] public class Product : ActiveRecordBase {... }

Klasy encji Klucze główne Klucz główny określamy poprzez atrybut PrimaryKeyAttribute Możemy podać szereg parametrów (są analogonami do parametrów z NHibernate a) Klucz złożony realizujemy następująco Tworzymy klasę serializowalną K, która będzie kluczem określamy właściwości klucza opatrując je atrybutem [PropertyAttribute] nadpisujemy metody GetHashCode i Equals W klasie właściwej tworzymy właściwość typu K i opatrujemy ją atrybutem [CompositeKey]

Klasy encji Proste mapowanie Odbywa się poprzez atrybut PropertyAttribute dla właściwości, FieldAttribute dla pól. Możemy podać szereg parametrów (są analogonami do parametrów z NHibernate a) Relacje Przyjrzymy się relacjom Many-to-one (realizowana przez atrybuty BelongsTo i HasMany) Many-to-many (realizowana przez atrybut HasAndBelongsToMany) One-to-one (realizowana przez atrybut OneToOne)

Przykład CompositeKeyExample OneToOneExample ManyToOneExample ManyToManyExample

Dziedziczenie i komponenty Dziedziczenie Do dyspozycji mamy 3 strategie, które są dostępne w NHibernate Wspólna tabela (z dyskryminatorem) Hierarchia tabel z dziedziczonym kluczem (joined subclass) Tabela na każdą klasę (nie trzeba oprogramowywać) Wspólna tabela jest realizowana z wykorzystaniem atrybutów DiscriminatorColumn, DiscriminatorType, DiscriminatorValue DiscriminatorColumn, DiscriminatorType, DiscriminatorValue w klasie bazowej DiscriminatorValue we wszystkich klasach potomnych

Dziedziczenie i komponenty Dziedziczenie Hierarchia tabel z dziedziczonym kluczem realizowana jest z wykorzystaniem atrybutów JoinedBase i JoinedKey JoinedBase umieszczamy obok atrybutu ActiveRecord w klasie bazowej JoinedKey umieszczamy zamiast PrimaryKey w klasie potomnej Komponenty W terminologii ActiveRecord nazywa się to nested data Realizowane za pomocą atrybutu Nested

Przykład Inheritance1Example Inheritance2Example NestedDataExample

Pobieranie obiektów Mamy kilka sposobów pobierania rekordów: Poprzez metody obiektu: Find, FindAll, FindByProperty, itd. Poprzez zapytania HQL i SQL Poprzez określenia kryteriów (ICritetion)

Przykład Quering1Example Quering2Example