NHibernate. Narzędzie mapowania obiektowo - relacyjnego

Podobne dokumenty
Podejście obiektowe do relacyjnych baz danych Hibernate.

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Hibernate mapowanie baz danych

NHibernate Hibernate dla platformy.net. Hibernate posiada także dużą społeczność, zatem nietrudno uzyskać jakieś wsparcie w przypadku problemów.

Metody dostępu do danych

Podstawowe wykorzystanie Hibernate

Programowanie wielowarstwowe i komponentowe

Hibernate. 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład.

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >.

Hibernate. Adrian Gawor, Adam Klekotka, Piotr Kubisz. Technologie Biznesu Elektronicznego. 12 maja 2009

22 października Akademia Górniczo-Hutnicza, Automatyka i Robotyka. Porównanie LINQ i NHibernate. Mateusz Mazur Ale o co chodzi?

Zaawansowane Techniki Bazodanowe

NHibernate - badanie możliwości i opracowanie przykładów wykorzystania technologii ORM Pollitechnika Koszalinska Wlodzimierz Khadzhynov

Projektowanie aplikacji z bazami danych

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

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

Załącznik Nr 5 do Zarz. Nr 33/11/12

Zaawansowane aplikacje internetowe - laboratorium

Instrukcja laboratoryjna nr.4

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład.

Praca z aplikacją designer

METODY PROGRAMOWANIA

Gdzie jest moja tabela?

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

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

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Hibernate. Od Nowicjusza do Profesjonalisty. Dave Minter Jeff Linwood

Metody dostępu do danych

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Kurs programowania aplikacji bazodanowych

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

Programowanie obiektowe

Bazy danych 2. Wykład 6

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM

Aplikacje Internetowe

przygotował: Bazy danych Paweł Kasprowski Wersja 2006Z

Programowanie Obiektowe Ćwiczenie 4

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Db4o obiektowa baza danych wersja.net

1 Wprowadzenie do J2EE

5 AS SP.NET MVC. Walidacja danych. Zaawansowane programowanie internetowe Instrukcja nr 5

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

Programowanie obiektowe

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

Katalog książek cz. 2

Enterprise JavaBeans

Programowanie w MS Visual Studio 2005 z wykorzystaniem MS SQL Server 2005

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy.

Projektowanie aplikacji z bazami danych

Programowanie obiektowe

Paweł Rajba

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Qt sygnały i designer

Paweł Cieśla. Dokumentacja projektu

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Podstawy frameworka Spring

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Microsoft.NET: ASP.NET MVC + Entity Framework (Model First)

JPA Java Persistance API

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

ESDI. WebService. Wersja 1.2. Strona 1

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Generyczne mapowanie obiektowo-relacyjne z wykorzystaniem dedykowanego oprogramowania

Schematy aplikacyjne UML i GML dla mapy zasadniczej oraz Modelu Podstawowego. Rozdział 1 Założenia podstawowe

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); }

Podstawy języka Java. przygotował:

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Bezstanowe komponenty sesyjne i zdarzenia zwrotne

Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Relacje. 1. Modelowanie relacji. - siedem rodzajów relacji J2EE. - relacje jedno i wielokierunkowe, - relacje reprezentowane przez kolekcje.

Tworzenie i wykorzystanie usług sieciowych

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

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

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

Relacje. 1. Modelowanie relacji. - siedem rodzajów relacji J2EE. - relacje jedno i wielokierunkowe, - relacje reprezentowane przez kolekcje.

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Laboratorium 10 - Web Services

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Narzędzia 4. dr inż. Tadeusz Jeleniewski

Zaawansowane aplikacje WWW - laboratorium

Tomasz Dobek.

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

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

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Kurs programowania aplikacji bazodanowych

Programowanie w języku Java WYKŁAD

Programowanie obiektowe

Języki i paradygmaty programowania - 1

Wzorce logiki dziedziny

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Integracja Comarch e-sprawozdania

Języki i metody programowania Java. Wykład 2 (część 2)

Transkrypt:

NHibernate Narzędzie mapowania obiektowo - relacyjnego Autor : Maciej Białorucki

Mapowanie obiektowo-relacyjne Mapowanie obiektowo - relacyjne Object Relation Mapping Dwa światy Dlaczego nie stosować baz obiektowych?

NHibernate Czym jest? Narzędzie ORM dla Javy i C# Zapewnia obiektowy model dostępu do danych Wady Dokumentacja najeżona błędami Zalety Znaczne zredukowanie ilości pracy związanej z oprogramowaniem dostępu do danych Model obiektowy Nie wymaga modyfikowania klas zapisywanych obiektów

Klasyczne podejście Stosowanie ADO.NET Obiekty DataTable, DataColumn, DataSet itd. Używanie kontrolek dostępnych w Visual Studio Zalety : Standardowe rozwiązanie, często stosowane Dobrze udokumentowane Wady : Konieczność wykorzystywania SQL a Rozwiązanie i nie do końca ń obiektowe

Przykład cz.1 Kod klasy : Plik mapowania : class Przesylka private int Id; private int pr_id; private int kh_id; private int typprzesylki; private Wymiary wymiary; private Atrybuty atrybuty; private int fk_id; private string opis; private int ilosc; private double wartosc; private DateTime datanadania;... <?xml version="1.0" encoding="utf-8"?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <class name="znaczekgt_hibernate.przesylka,znaczekgt_hibernate" table="przesylka"> <id name="id" column="id_przesylki" type="int32"> <generator class="native" /> </id> <property name="pr_id" column="pr_id" type="int32"/> <property name="kh_id" column="kh_id" type="int32"/> <property name="typ_przesylki" column="typ_przesylki_id" type="int32"/> <property name="polecony" column="polecony" type="boolean"/> <property name="priorytet" column="priorytet" type="boolean"/> <property name="potwierdzenie_odbioru" column="potwierdzenieodbioru" type="boolean"/> <property name="posterestante" column="posterestante" type="boolean"/> <property name="wartosc" column="wartosc" type="double"/> <property name="delikatna_zawartosc" column="delikatnazawartosc" type="boolean"/> <property name="dostarczona" column="dostarczona" type="boolean"/> <property p name="waga" column="waga" type="double"/> <property name="wysokosc" column="wysokosc" type="double"/> <property name="szerokosc" column="szerokosc" type="double"/> <property name="dlugosc" column="dlugosc" type="double"/> <property name="fk_id" column="fk_id" type="int32"/> <property name="opis" column="opis" type="string" length="255"/> <property name="ilosc" column="ilosc" type="int32" /> <property name="data_nadania" column="data_nadania" type="datetime" />... </class> </hibernate-mapping>

Przykład cz.2 Plik konfiguracyjny : <?xml version="1.0" encoding="utf-8"?> <configuration> <nhibernate> <add key="hibernate.connection.provider" value="nhibernate.connection.driverconnectionprovider /> <add key="hibernate.dialect" t" value="nhibernate.dialect.mssql2000dialect/> <add key="hibernate.connection.driver_class" value="nhibernate.driver.sqlclientdriver"/> <add key="hibernate.connection.connection_string" value="data Source=MACIEJ-E2F689BB\SQLEXPRESS; Database=ZnaczekGT2;Integrated Security=SSPI /> </nhibernate> </configuration>

Przykład cz.3 public int zapiszprzesylke(przesylka p) public List<Przesylka> pobierzprzesylki() try List<Przesylka> tmp = null; try sesja = fabryka.opensession(); transakcja = sesja.begintransaction(); sesja = fabryka.opensession(); int tmp = (int)sesja.save(p); tranzakcja = sesja.begintransaction(); tranzakcja.commit(); tmp = (List<Przesylka>)sesja.CreateQuery("from Przesylka"). return tmp; List<Przesylka>(); tranzakcja.commit(); catch (HibernateException e) tranzakcja.rollback(); throw e; finally sesja.close(); catch (HibernateException e) tranzakcja.rollback(); throw e; finally sesja.close(); return tmp;

Inne narzędzia ORM NJDC Sooda TierDeveloper Lattice Data Mapper NObject Dali NPersist...

O czym nie powiedziałem Odwzorowywanie relacji Odwzorowanie kolekcji Adnotacje, atrybuty Cykl życia trwałych obiektów HQL Hibernate Query Language Cache...

Źródła Hibernate. Od nowicjusza do profesjonalisty, D.Minter, J.Linwood, Power Net 2007 NHibernate Reference Documentation, v.1.2.0 http://sourceforge.net/projects/nhibernate/

Dziękuję za uwagę