witam,
Obiekty pewnej klasy są przechowywane w bazie danych.
Chciałabym aby te obiekty mogły być również przechowywane w innym źródle danych.
Jak to najprościej zrobić ? (także chodzi o takie dostosowanie klas projektu, aby
ewentualna zmiana źródła danych była prosta)
ORM (google: Hibernate, JPA) i wtedy nie ma znaczenia jaki jest silnik bazy danych. Jeżeli jeszcze do tego obiekty są serializowane to można i za pomocą najzwyklejszych strumieni zapisywać/wczytywać je z plików.
no właśnie tu raczej chodzi o takie dostosowanie tych klas, aby te obiekty były serializowane, żeby to czy chcemy przechowywać je w bazie danych czy innym źródle danych zależało już od konkretnej implementacji klasy implementującej interfejs ogólny(dla wszystkich typów źródeł);
bez Hibernate i JPA da się to zrobić ?
Zastanowiło mnie to ponieważ jest odwrotnością tego co zazwyczaj się robi, czyli uniezależnienia klasy, której obiekty chcemy utrwalić, od sposobu utrwalania. Najlepiej jest chyba jednak zrobić w ten sposób, że masz swoją klasę POJO, która implementuje Serializable i odpowiednią klasę DAO, która za pomocą Hibernate/JPA/Strumieni zapisuje ten obiekt. W tym momencie same gołe dane mogą być zawsze zapisane w jakimś narzędziu do składowania np. bazie danych. Jednocześnie to w jaki sposób zapiszesz dane będzie zależało już od tego jak zaimplementujesz klasę DAO.
dzięki za sugestie, w sumie to chyba dobrym rozwiązaniem było by tu użycie tego wzorca projektowego J2EE http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
Pozdrawiam
Toż piszę że trzeba użyć DAO :)
no ale ponoć DAO to <url>nie</url> jest J2EE, a jest ogolnym wzorcem dostepu do danych, a w J2EE moze miec rownież zastosowanie;
Bo nie jest J2EE, choć z niegi się wywozi inajczęściej jest tam stosowane :) W javie dość często panuje myślenie, że coś jest z J2EE, a w rzeczywistości związek jest taki, jak w przypadku DAO. Zresztą najlepszym przypadkiem sa właśnie JPA i wzorzec DAO oba nie nalezą do JEE, ale są tam najczęściej uzywane i tym samym kojarzone.
a wiesz może gdzie można znaleźć opis zastosowania samego DAO (bez J2EE), bo wszedzie google podaje opisy z J2EE właśnie...?
Hm.... Aplikacja SE i wzorzec DAO. Hibernate JSE:
http://www.onjava.com/pub/a/onjava/2005/11/16/hibernate-for-java-se.html
JPA + desktop applications:
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/persistenceapi/
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.