Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • SQLFinder - odpowiada za wykonywanie zapytań
  • SQLBuilder - pozwala definiować zapytanie
  • SQLQueryBuilder - udostępnia statyczne metody do generowania fragmentów zapytań SQL
  • FilterOperator - typ wyliczeniowy z dostępnymi operatorami warunkowymi
  • LogicOperator LogicOperator - typ wyliczeniowy z dostępnymi operatorami logicznymi
  • SimpleSQLFilter - definiuje prosty filtr
  • GroupSQLFilter - definiuje grupę filtrów
  • Sorter - definiuje sortowanie
  • SortDirectiontyp wyliczeniowy z dostępnymi kierunkami sortowania
  • CountedResult<?> - przechowuje dane, wraz z ogólną liczbą wyników. 

...

API umożliwia również dodatkowe funkcje tj. budowanie klauzuli where, order by, oraz ograniczanie zbioru wynikowego(offset i limit). Zacznijmy od filtrowania. Klasa SQLBuilder  SQLBuilder pozwala zbudować filtry za pomocą klas:

  • SimpleSQLFilterprosty filtr, opisuje nazwę kolumny, operator porównania i zawiera wartość filtru.
  • GroupSQLFilterpozwala grupować proste filtry, lub inne grupy filtrów. Warunki w grupie filtrów mogą być łączone operatorem logicznym OR, lub AND.

...

Dostępne operatory są opisane w dokumentacji FilterOperatorPrzejdźmy do grupowania filtrów:

...

Jak widzimy, możliwe jest zagnieżdżanie grup w innych grupach co pozwala na tworzenie drzewa warunków. Należy pamiętać, że gdy zdefiniujemy filtry, zapytanie, które podaliśmy poprzez setQuery ulegnie zmianie. Doklejona zostanie klauzula WHERE, wraz z warunkami. Dlatego nie możemy w setQuery podać zapytania z już istniejącą klauzulą WHERE. Jeżeli jednak pojawi się taka potrzeba możemy niezależnie zbudować fragment zapytania dotyczący warunków, w następujący sposób:

...

Przykład prezentuje sposób ograniczenia ilości zwracanych wyników. Poza parametrami oznaczającymi odpowiednio przesunięcie w zbiorze wynikowym(offset) i maksymalną ilość wyników(limit), widzimy, że zmienił się typ zwracanej wartości. Klasa CountedResult jest generyczna i służy przechowywaniu danych, wraz z ilością ogólną elementów. W tym przypadku otrzymamy maksymalnie 5 elementów, a wartość total będzie liczbą wszystkich elementów.