Java Data Objects.

Slides:



Advertisements
Podobne prezentacje
C++ w Objectivity Marcin Michalak s1744. Pomocne pakiety: Data Definition Language (DDL). Standard Template Library (STL). Active Schema.
Advertisements

Marcin Pamuła Mateusz Stefek
OOPC++ - operatory1 Operatory class complex { private: double re, im; public: complex (double r, double i = 0) { re = r; im = i; } friend complex operator+
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
Odwzorowania relacyjno-obiektowe Hibernate Tranzakcyjność i bezpieczeństwo danych.
Dzielenie relacyjne / Relational Division
Łukasz Monkiewicz.
Współprogramy Plan: Motywacja Składnia Scenariusz obiektu współprogramu Przykłady Producent – konsument ( instrukcja attach ) Czytelnik -pisarze ( instukcja.
„Tworzenie aplikacji sieciowych w języku Java”
Odwzorowania relacyjno-obiektowe Hibernate Tranzakcyjność i bezpieczeństwo danych.
Krzysztof Manuszewski
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 11.
db4o Kacper Skory Marcin Talarek
„Imię to słowna forma cienia To coś, co w słońcu, czy też w bidzie
Jak żyć długo i szczęśliwie ?
Czyli jak zrobić prezentację komputerową?
O PTYMISTYCZNI R ODZICE Przedszkola Samorządowego Nr 35 Wesołe w Białymstoku.
Widzisz byłego prezydęta Clintona i jego następcę Gora? Nie... To są 2 twarze Clintona ale z innym uczesaniem. Co widzisz?
- Jak mężczyzna może najszybciej popełnić samobójstwo
Wycieczka w Pieniny Fotograficzna opowieść o tym, jak zespolone siły klas I a, II h, III a i III b zdobyły 9 VI 2006 r. Trzy Korony. Prezentację przygotowała.
AUTOR :WOJTEK NOWIK REPORTER : PATRYK SORMAN LUK SMIS PIOTREK COLO (KOLO) MAX SOWT.
PROJEKT WEDŁUG DILBERTA
AUTOR :WOJTEK NOWIK REPORTER : LUK SMIS PATRYK SORMAN PIOTREK COLO (KOLO)
AUTOR :WOJTEK NOWIK REPORTER : LUK SMIS PATRYK SORMAN PIOTREK COLO (KOLO)
AUTOR :WOJTEK NOWIK REPORTER : PATRYK SORMAN LUK SMIS PIOTREK COLO (KOLO) MAX SOWT.
Kolejna gra mająca na celu pokazanie świata kierowców ścigających się w nielegalnych ulicznych wyścigach podrasowanymi do granic możliwości samochodami.
Niepubliczne gimnazjum w mielcu
Młodzież a wolontariat.. Opracowanie: Judyta Szłapa Urszula Buczek.
fotografie - Marcel Cohen
Takie liczby to: {... -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5,... }
Prawa Dziecka.
KOLOROWE ZNAKI ALICJA BARAN.
Nieformalne miejsca spotkań. ANKIETY Przeprowadziliśmy wśród uczniów gimnazjum ankietę na temat nieformalnych miejsc spotkań. Przedstawimy przykładowe.
Uwaga !!! Uczniowie SP 32 w Toruniu ! Zapraszamy was i Wasze rodziny do wzięcia udziału w Festynie Zdrowia, który odbędzie się 31 maja 2013 roku podczas.
PATRIOTYZM.
Cz.8 Zdarzenia. Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
Antonie de Saint-Exupery
Wielkości odwrotnie proporcjonalne. Te prostokąty mają równe pola! Długość prostokąta 4cm5cm8cm16cm32cm Szerokość prostokąta 4cm3,2cm2cm1cm0,5cm 8cm 2cm.
Publiczne Gimnazjum im
Powrót do sukcesu Analiza przypadku Princessy (rola badań marketingowych podczas rozwoju produktu: ) Powrót do sukcesu Analiza przypadku Princessy.
System gospodarki rynkowej
Instalacja serwera WWW na komputerze lokalnym
HTML Podstawy języka hipertekstowego Damian Urbańczyk.
W naszej klasie jest 7 dziewczynek i 9 chłopców. Lubimy się wspólnie uczyć, bawić i chodzić na wycieczki. A oto kilka zdjęć z życia naszej klasy w tym.
Znaczenie trzeźwości od alkoholu i narkotyków w miłości
Prawo lokalne w Internecie Jakub Kasprzycki
Przygotowali : Szymon, Filip i Piotrek
SKĄD WIEM, KIM JESTEM? O TOŻSAMOśCI I TOŻSAMOŚCIACH
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
KINECT – czyli z czym to się je?. Damian Zawada
BEZPIECZNY INTERNET. PRZEGLĄDANIE STRON INTERNETOWYCH.
Opracowała: Iwona Kowalik
Bazy danych.
Bóg Ciebie kocha i ma dla Ciebie wspaniały plan zbawienia
Są w życiu chwile, kiedy tak bardzo odczuwamy brak obecności innych,
ZŁUDZENIA OPTYCZNE Większe, mniejsze? Jest czy nie ma? Wygięte! ..?
Chrząszcz Jan Brzechwa.
W.K. (c) Bazy danych Access. 2W.K. (c) 2007 Baza danych - definicje Baza danych to zbiór informacji dotyczących określonego tematu (stanowiących.
Druga debata szkolna W piątek 21 XI 2008 roku odbyła się w naszej szkole kolejna debata. Zgromadziliśmy się jak zwykle w sali nr 33.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Rozdział 3: Bezpieczeństwo w sieci opartej na systemie Windows 2000.
GABRIEL GARCÍA MÁRQUEZ
w/g Grzegorz Gadomskiego
Klasa 1b Prezentacja przedstawiająca uczniów klasy 1b Gimnazjum w Międzyborowie. Autor: Dawid Roszczyk.
Mam 6 lat… …i już bardzo dużo potrafię… Gabriel Fras klasa I lat 6
KW2 Czy można żyć bez KW2? - Można, ale co to za życie?... [S.Toton 2001r.n.e.]
Zpiratował Rafał Kaczyński. Jest to technologia pozwalająca mapować dane obiektowe na odpowiadające im struktury w bazach danych. Hibernate pozwala na.
TROCHĘ HISTORII Marek Zając PO CO UŻYWAĆ OPENCL? Marek Zając.
1.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 6.
Zapis prezentacji:

Java Data Objects

Słownik Persystencja Transakcja RDBMS ODBMS

JDO to standard Producenci (vendors) dostarczają implementacji standardu JPOX (RDBMS) Orient (ODBMS) inteliBO (RDBMS) ObjectDB

Dlaczego JDO? Można zmienić silnik bazy danych a nawet typ bazy danych bez zmian w kodzie. Nie trzeba tworzyć struktury bazy danych (koniec z normalizacją) Twoje klasy nie muszą implementować żadnych specjalnych interfejsów

Trzy rodzaje klas w JDO Persistence Capable – mamy dla nich wygenerowany plik *.jdo (deskryptor) Persistence Aware – te które manipulują instancjami Persistence Capable Normal – klasy które nie mają nic wspólnego z JDO

Menadżer Persystencji (Slajd samokomentowalny) Properties props=new Properties(); props.put("javax.jdo.PersistenceManagerFactoryClass","org.jpox.PersistenceManagerFactoryImpl"); props.put("javax.jdo.option.ConnectionDriverName","com.mysql.jdbc.driver"); props.put("javax.jdo.option.ConnectionURL","jdbc:mysql://localhost/jpox"); props.put("javax.jdo.option.ConnectionUserName","mysql"); props.put("javax.jdo.option.ConnectionPassword",""); PersistenceManagerFactory pmf=JDOHelper.getPersistenceManagerFactory(props); PersistenceManager pm=pmf.getPersistenceManager(); Można też zczytać ustawienia z pliku lub poprzez Java Naming and Directory Interface

Rodzaje obiektów w JDO (nomenklatura) Transient Persistent New Persistent Dirty Hollow Persistent Clean Persistent Deleted Persistent New Deleted Persistent Non-transactional Transient Clean Transient Dirty Detached Clean Detached Dirty

makePersistent() Transaction tx=pm.currentTransaction(); try { tx.begin(); Product product=new Product("Sony Discman","A standard discman from Sony",49.99); pm.makePersistent(product); tx.commit(); } finally if (tx.isActive()) { tx.rollback(); }

Aktualizacja wpisu w bazie danych Transaction tx=pm.currentTransaction(); try { tx.begin(); String product_name=product.getName(); ... product.setPrice(75.0); tx.commit(); } finally if (tx.isActive()) { tx.rollback(); }

deletePersistent() Transaction tx=pm.currentTransaction(); try { tx.begin(); String product_name=product.getName(); ... pm.deletePersistent(product); tx.commit(); } finally if (tx.isActive()) { tx.rollback(); }

Cały diagram stanów

Przenieść obiekt w stan Transient – makeTransient() Wszystko to dzieje się podczas trwania transakcji, co zrobić by dowolnie modyfikować obiekt bez zmian w bazie danych? Przenieść obiekt w stan Transient – makeTransient() Odłączyć obiekt – detachCopy() Użycie nonTransactional[Read/Write]()

Wiemy jak zapisywać do bazy danych, jak wczytać obiekt z bazy?! Object identity = pm.getObjectId(obj); Object obj = pm.getObjectById(identity); Użycie JDOQL – JDO Query Language Query q = pm.newQuery(MyClass.class, "field1 < value"); q.declareParameters("int value"); List results = q.execute(205); Iterator iter = results.iterator(); while (iter.hasNext()) { MyClass obj = (MyClass)iter.next(); }

Alternatywa dla JDOQL (brutalna) Użycie Extent’u Extent e = pm.getExtent(MyClass.class, true);

Persistence-by-reachability Inne ważne cechy Persistence-by-reachability class Moja { innaMojaKlasa other; } Fetch-grupy Kiedy „wyjmujemy” obiekt z bazy danych nie wszystkie jego pola muszą być pobierane od razu. Można ukreślać własne Fetch-grupy

Wszystko tu to banały... O co naprawdę chodzi? Transakcje optymistyczne i pesymistyczne Wsparcie dla samo-replikowalnych baz danych

Jakie to proste! (W teorii) Ściągamy plugin do Eclipsa Włączamy „support” JPOX Plugin generuje nam plik *.jdo Po każdym build’dzie JPOX modyfikuje nasze klasy tak, że są „Persistence Capable” Możemy pisać kod naszej aplikacji używając sformułowań JDO

Zderzenie teorii z praktyką(SMUTNE)