# mvc + dao



## 207 (8. Dez 2009)

ich muss ein jdbc projekt machen mit MVC und DAO. das laeuft auch schon soweit. das "problem" ist, dass ich kein controller habe/brauch. 
ein beispiel: am anfang wird das programm geladen und die ganze Autotabelle der datenbank wird in ein JTable dargestellt. also ruf ich aus dem konstruktor der gui die entsprechenden DAO methoden auf. so sieht es in der GUI klasse dann aus:

```
DAOFactory oracleFactory = DAOFactory.getDAOFactory(1);//oracle factory
CarModelDAO carDAO = oracleFactory.getCarDAO();
Collection<CarModel> cars = carDAO.selectCars();
```

cars ist mein transfer object was ich dann mit foreach durchiterier und in der jtable anzeig. 
und so mach ich es auch mit allem anderen..wenn zb irgendein button gedrueckt wird.

wozu ein controller in diesem fall? oder wo ist der denkfehler?


----------



## maki (8. Dez 2009)

> wo ist der denkfehler?


Sowas gehört nicht in die GUI Klasse sondern in den Controller


----------



## 207 (8. Dez 2009)

nur wo ist der sinn? ich mach mir dann ein controller..aber der tut nicht wirklich etwas ausser die anfrage der GUI weiterzugeben ans DAO/model

GUI -> Controller.getCars() ->DAO.getCars()

und dann kommt die rueckgabe einer collection von DAO.getcars():

DOA.getCars() -> Controller.getCars() -> GUI -> nun hab ich die collection in meiner GUI und zeig sie an.

ist einfach nur ein weitergeschiebe.


----------



## maki (8. Dez 2009)

> ist einfach nur ein weitergeschiebe.


Auch als "Delegation" bekannt, nützlich bei SoC, du willst ja keine Logik inder GUI Klasse haben sondern alles getrennt, MVC eben.


----------



## L-ectron-X (8. Dez 2009)

Heutige Implementierungen halten sich oftmals nicht so streng an das MVC-Pattern. In Java bilden GUI und Controller häufig eine Einheit. Man spricht in diesem Zusammenhang nicht mehr von MVC sondern von MVP.


----------



## 207 (8. Dez 2009)

mh okay. dann werd ich es so machen  danke!


----------

