🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
2 messages
2 total messages Started by Piotr Buczek Sat, 20 Dec 2014 09:15
JPA czy JDBC
#154106
Author: Piotr Buczek
Date: Sat, 20 Dec 2014 09:15
42 lines
2862 bytes
Cześć

Choć młodzikiem już nie jestem to jednak w dziedzinie Javy można mnie 
sklasyfikować jako młodziaka. I oto mnie gołowąsowi przyszło napisać 
aplikację w javie, która będzie łączyła się z wieloma bazami danych. 
Nie bardzo wiem którą drogą pójść. Stąd moja prośba o porady.


Podstawowe założenia projektowe to:
- do serwisu loguje się wielu klientów
- każdy klient ma zagwarantowaną separację danych na poziomie bazy 
danych, implikuje to, że w momencie logowania zapada decyzja o tym z 
jaką bazą się łączymy
- aplikacja musi być szybka, dane będą do niej trafiały hurtowo na 
szczęście ich rozmiar będzie niewielki
- szkielet aplikacji jest oparty o spring
- każdy klient ma osobny punkt wejścia do aplikacji - dedykowany url

Tym który dotrwali czytając do tego miejsca chcę zadać pytanie. Na jaki 
sposób łączenia z bazą danych się zdecydować? JPA czy JDBC?

Za JPA (tutaj konkretnie EclipseLink) przemawia szybkość tworzenia 
aplikacji i lepsza jej organizacja, niestety nie wiem jeszcze jak 
rozwiązać problem dynamicznego podłączenia się do bazy (wiele 
predefiniowanych persistance units odpada, bo wymagana jest opcja 
automatycznego tworzenia środowiska dla nowego klienta, restart serwera 
jest zabroniony). Kolejna moja wątpliwość, to czy JPA jest przewidziana 
do takich wygibasów, czy nie wpadnę w jakąś pułapkę?

JDBC - tutaj mozna zrobić niby wszystko i możliwości tuningu wydajności 
wydają się szersze. Niestety kod nie jest tak piękny, trzeba wszystko 
dziergać ręcznie i podatność na błędy jest chyba większa. Niewątpliwą 
zaletą użycia JDBC jest możliwość pełnego wykorzystania możliwość bazy 
danych, można swobodnie korzystać z procedur składowanych itd bez 
zaprzątania sobie głowy tym, czy JPA zorientuje się, że doszło do zmian 
w bazie.

Koleżanki i Koledzy które rozwiązanie zalecilibyście mi? A może jest 
inna droga?

--
Piotrek
Re: JPA czy JDBC
#154107
Author: Wojtek
Date: Thu, 15 Jan 2015 09:52
28 lines
1991 bytes
 >
 > Tym który dotrwali czytając do tego miejsca chcę zadać pytanie. Na jaki
 > sposób łączenia z bazą danych się zdecydować? JPA czy JDBC?
 >
 > Za JPA (tutaj konkretnie EclipseLink) przemawia szybkość tworzenia
 > aplikacji i lepsza jej organizacja, niestety nie wiem jeszcze jak

Niekoniecznie.
Musisz definiować encje, które są do niczego niepotrzebne, a wymaga
je JPA.
A potem rodzą się problemy "nieznane w innych ustrojach": LAZY czy EAGER 
(i oba rozwiązania są takie sobie).
Potem standardowe problemy typu: jak zamapować jakieś tam many2many itp
(oczywiście to jest opisane).
Potem dojdą problemy wydajnościowe - i kolejny koszt na ich rozwiązanie.
Potem dziwaczny EJBQL i takie tam.

 >
 > JDBC - tutaj mozna zrobić niby wszystko i możliwości tuningu wydajności
 > wydają się szersze. Niestety kod nie jest tak piękny, trzeba wszystko
 > dziergać ręcznie i podatność na błędy jest chyba większa. Niewątpliwą

Jestem za JDBC, ewentualnie MyBatis.
Kod jest niegorszy od tego z JPA. Oczywiście stwórz sobie jakiś template
typu SpringJDBC  (czy jakoś tak).

Pozdrawiam,
Wojtek
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads