Ostatnimi czasy kilkakrotnie dotykałem tematu konfiguracji bazy danych, ale rozwiązania typu Grails skutecznie mnie wyręczały w zadaniu. Grails udostępnia wbudowaną bazę danych HSQL, więc poznawanie go nie musi pociągać za sobą poznawania konfiguracji bazy danych. Po prostu baza danych jest i można z niej korzystać. Wszelkie niuanse bazodanowe schodzą na drugi plan. Dodając do tego automatyczne tworzenie struktur bazodanowych z pomocą GORM (zDeeSeLowane JPA) i jedyne, o co musimy zadbać, to stworzenie klas dziedzinowych, które później odpowiednio związujemy ze sobą relacjami jeden-do-jednego, jeden-do-wielu lub wiele-do-wielu (wiele-do-jednego nie jest niczym innym w Grails, jak odwróceniem jeden-do-wielu - przeciwnie do JPA, w którym należy wykonać kilka dodatkowych czynności konfiguracyjnych).
Ta niewiedza bazodanowa zaczęła mi lekko doskwierać i kiedy podczas ostatniej prezentacji Grails na konferencji java4peple przyszło mi zaprezentować sposób tworzenia relacji z klasami dziedzinowymi...zawiesiłem się! Niesamowicie frustrujące i nawet, jeśli nie zostało to specjalnie zauważone, doszedłem do wniosku, że czas z tym skończyć. Jako "produkt" tego kończenia stworzyłem artykuł Grails z MySQL wprowadzający w świat konfiguracji bazy danych MySQL w Grails. W ramach artykułu tworzę przykładową aplikację grailsową z pojedynczą klasą dziedzinową i kontrolerem, który korzysta z dynamicznego rusztowania.
Jeśli większość z przedstawionych tutaj terminów nie brzmi znajomo, a w planach masz rozpoznanie Grails, warto zajrzeć do mojego nowego artykułu Grails z MySQL. Tym samym kończę z przedstawianiem Grails wyłącznie z perspektywy książki DGG2, jak proszono mnie od dawna (dzięki Radek H. za wytrwałość, a Marcinowi M. ślę specjalne podziękowania za ciągłe przywoływanie mnie do porządku, aby zamiast mydła i powidła zaprezentować w końcu coś naprawdę wartościowego ;-)). Uwagi mile widziane.
Dzięki! Jak zwykle miło poczytać o Grails na Twoim blogu ;).
OdpowiedzUsuńJa za to mam nowinkę: java i groovy działają na Google App Engine, na razie tylko dla 10 tys. pierwszych osób, ale ma się to rozszerzać. Więcej, w komentarzach na http://blog.springsource.com/2009/04/07/write-your-google-app-engine-applications-in-groovy/ można wyczytać, że są już plany uruchomienia grails na tej platformie, co mogłoby przynieść spore korzyści grailsowej społeczności :)
Zapisałem się i cierpliwie czekam na bilet wstępu. Na pewno się pochwalę, jak już nadejdzie. Na razie pracuję na Mor.phie i dobrze byłoby to porównać z ofertą Amazonu i teraz Googla.
OdpowiedzUsuńAha, właśnie Ci psuję nauczyciela na Morphie;)
OdpowiedzUsuńError 500: java.lang.NullPointerException
Servlet: grails
URI: /grails/sprawdzian/sprawdz.dispatch
Exception Message:
Caused by: java.lang.NullPointerException
Class: SprawdzianController
At Line: [17]
Code Snippet:
Rzeczywiście Groovy na App Engine działa ;)
OdpowiedzUsuńNie oczekuje współpracy Grails zbyt szybko. Wszystkie projekty zależne muszą dopracować polisy bezpieczeństwa i korzystanie z API.
Wygląda na to, że bardziej zalecają korzystać z JDO niż z JPA. Oba mają też ograniczenia, niektóre zabawne. Jestem ciekaw, czy GORM postara się je obejść, czy po prostu niektóre zapytania nie będą działać.
Pozdrawiam,
Krzysiek
Warto moze dodac, ze w przypadku *juz istniejacego* modelu w bazie danych w dalszym ciagu mozna korzystac z udogodnien GORM.
OdpowiedzUsuńPozdrawiam
Michal Huniewicz
Tak, oczywiście. Pewnie będzie to tematem jednego z nadchodzących, moich doświadczeń z Grails i MySQL. Nie zamierzam zabawiać się z SQLem, ale może uda się znaleźć na sieci jakiś przykład w innej technologii, którą możnaby zmigrować do GORMa. Pomysły?
OdpowiedzUsuńMoze cos na bazie WSDL, ale szczerze powiedziawszy nie wiem, jakby to mialo wygladac (gdzies mi sie obilo o uszy)...
OdpowiedzUsuńA już myślałem, że to ja jestem jeden samotny z naleciałościami dziecka PHP i podłączam Grailsy pod MySQL :) Bardzo sympatyczny art.
OdpowiedzUsuń