Czytam o połączeniach ze źródłami danych w Javie i mam kilka pytań. Czy źródło danych to po prostu menedżer i abstrakcja połączenia (lub wielu połączeń)?Połączenia a źródła danych
Odpowiedz
Od docs:
Fabryka połączeń ze źródłem danych fizycznej że ten obiekt DataSource reprezentuje. Alternatywą dla obiektu DriverManager jest obiekt DataSource, który jest preferowanym sposobem uzyskania połączenia.
Faktycznie, DataSource
jest sprzedawca Connection
s i ma szereg wdrożeń, które działają w różny sposób. Takich jak:
podstawowe realizacji - produkuje standardowego obiektu Connection
realizacji puli połączeń - tworzy obiekt połączenia automatycznie udziału w puli połączeń. Ta implementacja działa z menedżerem puli połączeń średniego poziomu.
Implementacja transakcji rozproszonych - tworzy obiekt połączenia, który może być używany do transakcji rozproszonych i prawie zawsze uczestniczy w puli połączeń. Ta implementacja działa z menedżerem transakcji średniego szczebla i prawie zawsze z połączeniem menedżera pulingu.
Źródło danych jest źródłem danych, połączenie jest sterownikiem.
Połączenie to połączenie :) DataSource to menedżer połączeń (pula połączeń).
DataSource jest chory pomysł w swojej obecnej formie, jak gdyby była ona przeznaczona do abstrakcyjnych interakcji nie powinno powrócić jakiś związek SQL do wymiany w pierwszej kolejności. Również jest to przesada, a XA to fantastyczna koncepcja, którą niektórzy słono płacili za brak rzetelnej implementacji na świecie (mam na myśli, że wszyscy komercyjni realizatorzy komercyjni po prostu zawodzą i ujawniają biznes ... ktoś został ranny z powodu tego w finansach, ale nie wspomnę o tym nazwy). Zasadniczo, niezależnie od tego, czy Sun lub Oracle go rekomenduje, powoduje to nadmierną inżynierię i pewne techniczne zabrudzenia w kodzie (zajmowanie się kontekstami, dodatkowe kroki, aby uzyskać dostęp do danych, niektóre konfiguracje zewnętrzne ... i na końcu jest to nadal specyficzne dla implementacje dostawców). Niektóre z opracowanych rozwiązań coroporate zajmują się łączeniem, odzyskiwaniem połączeń e.t.c znacznie lepiej w oparciu o zwykłe połączenia i DriverManager niż implementacje DataSource dostarczane przez dostawców DBMS przedsiębiorstwa.
Dla płyty, z którą pracowałem, opieram ją na faktach napotkanych w różnych miejscach. A jeśli w to wątpisz, zapytaj, dlaczego w firmowej konfiguracji Hibernuj możesz zobaczyć zwykły adres URL JDBC. Wiele z nich po prostu zrzuca koncepcję heavyweigtta J2EE i robi lekki ... również za pomocą zwykłych połączeń opartych na DriverManager.
Chcesz rozpocząć swoją karierę, a następnie korzystać z XA DataSources i odzyskiwania nieudanych transakcji, w których nieudana implementacja XA nie powiodła się.
Nie jestem pewien, czy ta odpowiedź jest w 100% dokładna i poprawna. –