Myślę że śmiało można określić bazy danych w aplikacji Java jako jej serce. Mimo to mam wrażenie że na Bootcampach są one dosyć często nie doceniane. W tym artykule przedstawiam najważniejsze zastosowania relacyjnych baz danych w aplikacjach Java.
Zastosowania bazy danych w aplikacji Java
Gdyby się tak dobrze zastanowić dlaczego bazy danych są sercem aplikacji Java może przyjść nam na myśl klika prostych odpowiedzi:
- to tutaj są przechowywane wszystkie informacje konieczne do pobierania, zapisywania i wykonywania innych operacji na obiektach aplikacji.
- to tutaj są przechowywane hasła i loginy użytkowników wraz z informacjami na temat ich ról.
- to od rodzaju bazy danych jest zależna składnia procedur. Będzie ona wyglądać odrobinę inaczej dla Microsoft SQL, dla Oracl’a, czy PostgreSQL’a. W jaki sposób napisać procedurę w bazach danych Oracle znajdziesz w moim artykule: Procedury w PL/SQL. – Zapraszam 🙂 .
- podobnie sytuacja wygląda z samymi zapytaniami. Tutaj również znajdziemy różnicę w składniki w zależności od tego z której bazy danych korzystamy.
- to od tego jak dobrze jest skonstruowany model bazy danych zależy również wydajność aplikacji. Jeżeli jest on dobrze przemyślany łatwiej można napisać skomplikowane zapytania. Co pozytywnie może przenieść się na wydajność. W przeciwnym razie napisanie prostego zapytania może być problematyczne.
- to tutaj aplikacja/system jest narażony na Jego hackowanie. Trzeba więc pamiętać o sql injection i napisać zapytanie w taki sposób aby zabezpieczyć dany kod.
Komunikacja z bazami danych
do komunikacji/konstruowania zapytań do bazy danych możemy wykorzystać:
- Entity Manager’a
- Hibernate jednak przy jego użyciu powstaje również problem n+1.
- Hibernate dostarcza nam również optimistic locking innego wariantu dla pessimistic locking które są dostarczane przez bazy danych. Na temat pesimistic locking w bazach danych Oracle możesz przeczytać w jednym z moich artykułów: Read Only i Read Write.
- takie narzędzia jak Flyway czy Liquibase również służą do migracji z bazą danych.
Podsumowanie
Podsumowując, bazy danych są jedną z najważniejszych części aplikacji. Bez nich trudne stało by się przechowywanie danych. Jednak aby efektywnie z nich korzystać należy zapoznać się m.in z mechanizmem migracji czy też lockowań. A jakie są Twoje przemyślenia na ten temat? Zapraszam do podzielenia się w komentarzu 😉