In statu nascendi … jeszcze nie gotowe …

collation=sposób_sortowania

collation = sortowanie zlokalizowane
Baza Derby domyślnie używa sortowania UTF-8, jednak poprzez ustawienie atrybutów collation i territory można to zmienić. Oba atrybuty mogą zostać ustawione jedynie w momencie utworzenia bazy danych.
Sortowanie zlokalizowane ustawione atrybutami odnosi się wyłącznie do tabel utworzonych przez użytkownika – nie zmienia sortowania tabel systemowych.
Sortowanie zlokalizowane jest ważne przy wyszukiwaniu i porównywaniu danych.
Atrybut collation może przyjmować następujące argumenty:

  • UCS_BASIC – sortowanie domyślne UTF-8
  • TERRITORY_BASED – sortowanie zgodne z językiem wyspecyfikowanym w atrybucie ‘territory’. Jeśli atrybut ‘territory’ nie jest podany uwzględniana jest domyślna lokalizacja, np. ta, która byłaby zwrócona przy użyciu metody Locale.getDefault(). Zawsze używa się z określoną siłą sortowania:
    • TERRITORY_BASED:PRIMARY – znaki takie jak ‘A’, a, ą, ă, á – nie są od siebie odróżniane, ogonki, daszki, akcenty, etc. nie są uwzględniane w sortowaniu, a więc pomieszane
    • TERRITORY_BASED:SECONDARY – odróżniane są ogonki, daszki, akcenty i ustawiane jak w narodowym słowniku – jest to szczególnie ważne np. w języku hiszpańskim, gdzie pojedyncze głoski ‘ch’ i ‘ll’ są zapisywane dwiema literami. Nie jest rozróżniana wielkość liter
    • TERRITORY_BASED:TERTIARY – domyślne – w sortowaniu odróżniane są oba poprzednie oraz wielkość liter
    • TERRITORY_BASED:IDENTICAL – uwzględniane są wszelkie różnice

Przykład
jdbc:derby:baza_danych;create=true;territory=pl_PL;collation=TERRITORY_BASED:TERTIARY

territory=”pl_PL”

Służy do podania lokalizacji innej niż domyślna. Kraj podaje się w sytemie “pl_PL”, gdzie pierwsze dwie litery oznaczają język, pozostałe dwie – kraj. Kody są określone przez standard ISO-639 i ISO-3166.
Atrybut może być użyty wyłącznie przy tworzeniu nowej bazy danych.
Przykład
jdbc:derby:baza_danych;create=true;territory=pl_PL

Przykłady

Przykłady w klasach R113AR113G.
R113A.java
Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true");

A C E L N O S Z a c e l n o s z Ó ó Ą ą Ć ć Ę ę Ł ł Ń ń Ś ś Ź ź Ż ż

R113B.java
Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true;territory=pl_PL");

A C E L N O S Z a c e l n o s z Ó ó Ą ą Ć ć Ę ę Ł ł Ń ń Ś ś Ź ź Ż ż

R113C.java
Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true;territory=pl_PL;collation=UCS_BASIC");

A C E L N O S Z a c e l n o s z Ó ó Ą ą Ć ć Ę ę Ł ł Ń ń Ś ś Ź ź Ż ż

R113D.java
Connection con = DerbyUtil.connectEmbeddedDB(baza, "create=true;territory=pl_PL;collation=TERRITORY_BASED");

a A ą Ą c C ć Ć e E ę Ę l L ł Ł n N ń Ń o O ó Ó s S ś Ś z Z ź Ź ż Ż	

R113E.java
Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true;territory=pl_PL;collation=TERRITORY_BASED:PRIMARY");

A a Ą ą C c Ć ć E e Ę ę L l Ł ł n N ń Ń O o Ó ó S s Ś ś Z z ź Ź Ż ż

R113F.java
Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true;territory=pl_PL;collation=TERRITORY_BASED:SECONDARY");

A a Ą ą C c Ć ć E e Ę ę L l Ł ł n N ń Ń O o Ó ó S s Ś ś Z z ź Ź Ż ż

R113G.java
Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true;territory=pl_PL;collation=TERRITORY_BASED:TERTIARY");

a A ą Ą c C ć Ć e E ę Ę l L ł Ł n N ń Ń o O ó Ó s S ś Ś z Z ź Ź ż Ż

Uwagi

Gdy używamy serwera bazy danych plik bazy danych jest umieszczany w folderze projektu, na tym samym poziomie zagnieżdżenia co moduły projektu, ale czasami nie jest bezpośrednio widoczny. Np. w IntelliJ IDEA trzeba zajrzeć do plików na dysku i usunąć bazę danych ręcznie. Oczywiście do usunięcia możesz użyć odpowiedniej metody, która była prezentowana w niektórych z wcześniejszych przykładów.

Pliki do ściągnięcia

collation.zip (zestaw klas wymienionych w tekście)
teksty.zip (skrypt)
Aktualny (tworzony narastająco) plik module-info.java
Aktualny (tworzony narastająco) plik DerbyUtil.java
Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszystkich wpisach w projekcie. W przypadku pliku module-info.java może być potrzebne skreślenie niepotrzebnych wpisów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *