Źródło danych - Datasource

DataSource to nazwa nadana połączeniu z bazą danych z serwera . Nazwa jest powszechnie używana podczas tworzenia zapytania do bazy danych. Nazwa źródła danych (DSN) nie musi być taka sama jak nazwa pliku bazy danych. Na przykład plik bazy danych o nazwie friends.mdb można skonfigurować z nazwą DSN szkoły . Następnie szkoła DSN byłaby używana do odwoływania się do bazy danych podczas wykonywania zapytania.

Wersja DataSource firmy Sun [1]

Fabryka połączeń z fizycznym źródłem danych, które reprezentuje ten obiekt DataSource. Alternatywą dla narzędzia DriverManager jest obiekt DataSource, który jest preferowanym sposobem uzyskiwania połączenia. Obiekt, który implementuje interfejs DataSource, będzie zwykle rejestrowany w usłudze nazewnictwa opartej na interfejsie Java Naming and Directory Interface (JNDI).

Interfejs DataSource jest implementowany przez dostawcę sterownika. Istnieją trzy rodzaje implementacji:

  • Podstawowa implementacja - tworzy standardowy obiekt Connection
  • Implementacja puli połączeń - tworzy obiekt Connection, który będzie automatycznie uczestniczył w puli połączeń. Ta implementacja działa z menedżerem buforowania połączeń warstwy pośredniej.
  • Implementacja transakcji rozproszonych - tworzy obiekt Connection, 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 poziomu i prawie zawsze z menedżerem buforowania połączeń.

Obiekt DataSource ma właściwości, które można modyfikować w razie potrzeby. Na przykład, jeśli źródło danych zostanie przeniesione na inny serwer, można zmienić właściwość serwera. Zaletą jest to, że ponieważ właściwości źródła danych można zmienić, żaden kod uzyskujący dostęp do tego źródła danych nie musi być zmieniany.

Sterownik, do którego można uzyskać dostęp za pośrednictwem obiektu DataSource, nie rejestruje się w DriverManager. Zamiast tego obiekt DataSource jest pobierany przez operację wyszukiwania, a następnie używany do tworzenia obiektu Connection. W podstawowej implementacji połączenie uzyskiwane za pośrednictwem obiektu DataSource jest identyczne z połączeniem uzyskiwanym za pośrednictwem narzędzia DriverManager.

Przegląd źródeł danych firmy Sun [2]

Obiekt DataSource jest reprezentacją źródła danych w języku programowania Java . Mówiąc najprościej, źródło danych to narzędzie do przechowywania danych. Może być tak wyrafinowana, jak złożona baza danych dla dużej korporacji lub tak prosta, jak plik z wierszami i kolumnami. Źródło danych może znajdować się na serwerze zdalnym lub na lokalnym komputerze stacjonarnym. Aplikacje uzyskują dostęp do źródła danych za pomocą połączenia, a obiekt DataSource można traktować jako fabrykę połączeń z określonym źródłem danych, które reprezentuje wystąpienie DataSource. Interfejs DataSource udostępnia dwie metody nawiązywania połączenia ze źródłem danych.

Użycie obiektu DataSource jest preferowaną alternatywą dla używania DriverManager do nawiązywania połączenia ze źródłem danych. Są podobne do tego, że klasa DriverManager i interfejs DataSource mają metody tworzenia połączenia, metody uzyskiwania i ustawiania limitu czasu na nawiązywanie połączenia oraz metody pobierania i ustawiania strumienia do rejestrowania.

Jednak różnice między nimi są bardziej znaczące niż podobieństwa. W przeciwieństwie do DriverManager obiekt DataSource ma właściwości, które identyfikują i opisują źródło danych, które reprezentuje. Ponadto obiekt DataSource współpracuje z usługą nazewnictwa Java Naming and Directory Interface (JNDI) i może być tworzony, wdrażany i zarządzany niezależnie od aplikacji, które go używają. Dostawca sterownika dostarczy klasę, która jest podstawową implementacją interfejsu DataSource jako część produktu sterownika Java Database Connectivity (JDBC) 2.0 lub 3.0. Co administrator systemu robi, aby zarejestrować obiekt DataSource w usłudze nazewnictwa JNDI i co robi aplikacja, aby uzyskać połączenie ze źródłem danych za pomocą obiektu DataSource zarejestrowanego w usłudze nazewnictwa JNDI, opisano w dalszej części tego rozdziału.

Zarejestrowanie się w usłudze nazewnictwa JNDI daje obiektowi DataSource dwie główne zalety w porównaniu ze sterownikiem DriverManager. Po pierwsze, aplikacja nie musi na stałe zakodować informacji o sterowniku, jak ma to miejsce w przypadku DriverManager. Programista może wybrać nazwę logiczną źródła danych i zarejestrować nazwę logiczną w usłudze nazewnictwa JNDI. Aplikacja używa nazwy logicznej, a usługa nazewnictwa JNDI dostarczy obiekt DataSource powiązany z nazwą logiczną. Obiekt DataSource może następnie służyć do tworzenia połączenia ze źródłem danych, które reprezentuje.

Drugą ważną zaletą jest to, że funkcja DataSource umożliwia programistom implementację klasy DataSource w celu korzystania z takich funkcji, jak pule połączeń i transakcje rozproszone. Pule połączeń mogą znacznie zwiększyć wydajność poprzez ponowne wykorzystanie połączeń zamiast tworzenia nowego połączenia fizycznego za każdym razem, gdy jest żądane połączenie. Możliwość korzystania z transakcji rozproszonych umożliwia aplikacji wykonanie ciężkiej pracy z bazami danych w dużych przedsiębiorstwach.

Chociaż aplikacja może korzystać z obiektu DriverManager lub obiektu DataSource w celu uzyskania połączenia, użycie obiektu DataSource zapewnia znaczne korzyści i jest zalecanym sposobem nawiązywania połączenia.

Od 1.4

Od Java EE 6 powiązane z JNDI źródło danych można alternatywnie konfigurować w sposób deklaratywny bezpośrednio z poziomu aplikacji. Ta alternatywa jest szczególnie przydatna w przypadku samowystarczalnych aplikacji lub w przypadku przezroczystego korzystania z wbudowanej bazy danych.

Wersja DataSource [3] w Yahoo

DataSource to abstrakcyjna reprezentacja aktywnego zestawu danych, która przedstawia wspólny przewidywalny interfejs API dla innych obiektów do interakcji. Charakter danych, ich ilość, złożoność i logika zwracania wyników zapytań odgrywają rolę w określaniu typu źródła danych. W przypadku niewielkich ilości prostych danych tekstowych dobrym wyborem jest tablica JavaScript . Jeśli Twoje dane zajmują niewiele miejsca, ale wymagają prostego filtru obliczeniowego lub transformacyjnego przed wyświetleniem, funkcja JavaScript może być właściwym podejściem. W przypadku bardzo dużych zbiorów danych - na przykład solidnej relacyjnej bazy danych - lub aby uzyskać dostęp do usługi internetowej innej firmy, z pewnością będziesz musiał wykorzystać możliwości węzła skryptów lub źródła danych XHR.

Bibliografia