Witajcie,
Udało się wystawić kolejną wersję Daobaba.
Ważniejsze nowości:
- dużo poprawek w generatorze, który można uruchomić dużo łatwiej a który miał też wcześniej problem z pewnymi typami baz danych.
- wprowadziłem MetaDane, które są targetem, a więc możliwe jest wykonanie na nich kwerend SQLowych. Dzięki MetaDanym można np porównać schematy, dokonać analizy struktury bazy danych itp.
- AccessProtector pozwala na zarządzanie bezpieczeństwem w dostępie do poszczególnych rodzajów danych. Daobab pozwala na wystawienie targetu (bazy danych, kolekcji itp) za pośrednictwem jednego endpointu RESTowego. Jeśli jednak chcesz zablokować dostęp do pewnych danych wrażliwych, lub zwyczajnie wystawić tylko wybrane typy danych (tabele, kolumny), możesz to w bardzo łatwy sposób zrobić za pomocą tego narzędzia. AccessProtector można wykorzystać też wewnętrznie - jeśli w samej aplikacji chcesz zablokować dostęp do pewnych danych z poziomu SQL (Daobab umożliwia wykonywanie kwerend SQL na kolekcjach znajdujących się w pamięci)
- wbudowane statystyki, które możesz dostosować do swoich potrzeb np gromadzić informacje tylko o błędach, czy o dłuższych wykonanych kwerend. Te struktury również można przeglądać kwerendami
- obsługa kompozytów jako zbiorów kolumn w tym kompozytowych PrimaryKey
- ulepszyłem wykonywanie kwerend na kolekcjach. Same kolekcje inicjują się też dużo szybciej.
- wdrożyłem obsługę ByteBufferów Off-Heap. Bardzo wydajne rozwiązanie w przypadku bardzo dużych kolekcji. Tego typu struktury są poza Javowym Heapem, aczkolwiek korzystają z pamięci, którą system przydziela procesowi. Dla GC, ta pamięć jest niewidoczna... nie zarządza nią. Dlatego użycie tych struktur dla większych kolekcji pozwala bardzo przyspieszyć aplikację. Target ten jest indeksowany. Kwerendy wykonywanie na nim bywają znacznie szybsze od prostego filtrowania w streamie. Aczkolwiek kilka rzeczy zostało jeszcze do dopisania w następnej wersji.
- Plates a więc inaczej mówiąc projekcje, czyli robocze sety kolumn niekoniecznie należących do jednej tabeli, mogą również być same w sobie targetem, na którym można wykonywać kwerendy.
- dużo wewnętrznej przebudowy. Usunąłem kasy związane z niezależnym budowaniem kwerend. Od tej chwili kwerendy możliwe są do zbudowania wyłącznie z obiektu targetu. Jest to związane z tym, że każdy target może budować query w inny sposób. Nawet poszczególne typy bazy danych, mogą nie wspierać pewnych wyrażeń SQL, lub mogą nie wpierać SQL w ogóle.
- poza tym dużo mniejszych dodatków np budowanie insert-selectów, select duali czy innych bardziej skomplikowanych kwerend.
Od tej wersji, kody źródłowe są dostępne na GitHubie, gdzie również znajdziesz ponad 110 przykładów w działającej aplikacji z podpiętą H2jką.
Zachęcam do obserwowania projektu na GitHubie oraz odwiedzin strony http://www.daobab.io, gdzie znajdziesz do mnie kontakt jeśli ktoś potrzebujesz jakieś szyte na miarę rozwiązanie.
Jeśli podoba Ci się moja praca, proszę o sharing informacji o tej bibliotece. Dziękuję!