![]() |
Facade Pattern und DAO Pattern Java
Hallo zusammen,
ich schreibe gerade eine PC Anwendung für eine Datenbank, die Oberfläche ist nicht webbasiert, sie muss mit Swing erstellt werden. Je mehr ich mich in das Thema Design Pattern einlese desto mehr bin ich verwirrt. Mein Programm ist folgendermaßen aufgebaut: UI---Businesslogic---Persistence Businesslogic und Persistence sind jeweils eine Facade. Um auf die DB zuzugreifen benutze ich Hibernate. Ein DAO Pattern mit den Tabellen habe ich auch schon erstellt. Ich versteh aber nicht wie von meiner Persistenceschicht auf mein DAO Pattern zugreifen kann. Muss ich alle DAOs als Instanz in der Persistenceschicht anlegen, oder wie verbinde ich die beiden. Danke schonmal im Voraus. Grüße Börmt |
AW: Facade Pattern und DAO Pattern Java
Wenn ich dich richtig verstanden haben, ist dein Problem, an welcher Stelle du die konkreten DAOs (die Hibernate kennen) erstellen musst.
Wie ![]() Die Implementierung der Factory kennt/erstellt dann die Implementierungen der DAOs für Hibernate. EDIT: Ich bin mir aber nicht sicher, wie sinnvoll es ist, Hibernate bzw. JPA wegzuabstrahieren. Es ist ja schon eine ziemlich gute Abstraktion. |
AW: Facade Pattern und DAO Pattern Java
Die DAOs habe ich schon per Hand einfach erstellt.
Mein Problem ist, das ich nicht weiß wie ich von der persistenceschicht(Facade) auf die DAO schicht komm. Meine CRUD Operationen müssen ja alle in einer DAO sein, oder? Bsp.
Code:
Wenn ich jetzt einen User löschen möchte, muss ich dann eine Instanz von UserDetailsDAO in class PersistenceFacadeImpl erstellen, um die Daten weiterzugeben?
public interface UserDetailsDAO {
List<UserDetails> getAllUserDetails(); UserDetails getUserDetails(String surname, String name); void updateUserDetails(UserDetails userdetails); void deleteUserDetails(UserDetails userdetails); } Das scheint mir aber etwas falsch zu sein, da ich dann für jede Tabelle(Entity) eine Instanz in der Klasse PersistenceFacadeImpl anlegen müsste.
Code:
public class PersistenceFacadeImpl implements IPersistenceFacade {
private SessionFactory sessionFactory; private Session session; private UserDetailsDAO userDetails; // Mit Instanz erlaubt? oder ohne? public PersistenceFacadeImpl(SessionFactory sessionFactory, Session session) { this.sessionFactory = sessionFactory; this.session = session; } /** * createUser(), in UserDetailsDAO? */ @Override public void createUser(String surname, String name) { UserDetails user = new UserDetails(); user.setName(name); user.setSurname(surname); session.save(user); } @Override public void deleteUser(String surname, String name) { //Find user with query //Delete user //Respond to User if delete was successful String queryString = "from UserDetails where surname:surname and name=:name"; Query query = session.createQuery(queryString); List<UserDetails> result = query.list(); UserDetails result2 = result.get(0); userDetails.deleteUserDetails(result2); } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz