Spring, DAO i DataSource

0

Witam, otóż staram się napisać mały projekt i natrafiłem na pewną zagwozdkę.
A mianowicie na internecie znalazlem projekt który dziala na tabeli User w bazie danych. Posiada również StudentDAO(interfejs), realizacje tego interfejsu(StudentJDBCDAO), oraz POJO User. Interfejs ten posiada metode setDataSource(), która ustawia połaczenie w StudentJDBC.... I teraz moje pytanie co zrobić jak mamy wiecej objektów POJO i przydałoby się jakoś zapisywać i odczytywać je z bazy. Czy utworzyć jedną mega klasę która będzie miała wszystkie metody dla wszystkich objektów czy istnieje jakieś bardziej przejrzyste rozwiązanie?

0

Dla nowej klasy (encji) zrobić nową klasę DAO.

0

Ok a jak wtedy zarządzać połączeniem z bazy, każda klasa DAO nie będzie miała setDataSource().

0

Każda klasa DAO musi mieć jakiś Data Source. Gdybyś użył Spring Data to nie musiałbyś myśleć o ustawianiu Data Source w klasach DAO ;)

0

Ok, zaczynam powoli jarzyć. Ten bean co tworze go w xml

<bean id="dataSource" 
      class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
      <property name="url" value="jdbc:mysql://localhost:3306/TEST"/>
      <property name="username" value="root"/>
      <property name="password" value="password"/>
   </bean>

Potem tworząc kolejne ziarna dla kazdego obiektu realizujacy poszczegolny DAO interfejs taje referencje na niego, tak?
@edit Ten obiekt istnieje cały czas i zarządza połączeniem z bazą danych?

1

Zamiast wielu DAO lepiej zrobić jakiś generic Dao... Ale to może później.
Proponuję wykorzystać Hibernate. Robisz wtedy ziarno session... a może w sumie zamiast się rozpisywać lepiej przejrzyj sobie ten przykład:
http://www.journaldev.com/353[...]gration-crud-example-tutorial
Prosty i treściwy. Może DAOImpl bym trochę poprawił ale generalnie nie ma to na razie większego znaczenia.

1

użyj Spring Data!!

1
skytrack napisał(a):

Ok, zaczynam powoli jarzyć. Ten bean co tworze go w xml

<bean id="dataSource" 
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/TEST"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>

Potem tworząc kolejne ziarna dla kazdego obiektu realizujacy poszczegolny DAO interfejs taje referencje na niego, tak?
@edit Ten obiekt istnieje cały czas i zarządza połączeniem z bazą danych?

Każde DAO powinno mieć jakiś data source. Obiekt data source istnieje cały czas i jest to pula połączeń do bazy danych. Przykładowo popularna implementacja tej klasy to HikariCP:
http://brettwooldridge.github.io/HikariCP/

0

Dzięki ;) O to mniej więcej mi chodziło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0