#243563 25.03.2009 21:03:16
Hej,
Paweł prosił o małe HOWTO, jeśli chodzi o ibatisa. A zatem, zeby dodac mapowanie danej klasy z modelu trzeba(nasza klasa nazywa się Obiekt):
1. Mapowana klasa musi mieć standardowe akcesory do wszystkich mapowanych obiektów.
2. W pakiecie ...persistence.iface tworzymy interfejs ObiektDao, tam dopisujemy kolejne funkcje w javie, które potem będą zmapowane na pobieranie z bazy(wszelkie selecty, update, insert, delete itp)
3. W pakiecie ...persistence.sqlmapdao tworzymy klase ObiektSqlMapDao, ktory implementuje stworzony w 2 interfejs oraz jest podklasą BaseSqlMapDao z tego samego pakietu. Tutaj tez piszemy, ze nasza funkcja np getObiekt zwraca mapowanie "getObiekt" z jakims tam parametrem.
4. w pakiecie ...service tworzymy klase ObiektService, ktora ma znowu te same funkcje, co poprzednio utworzona klasa i interfejs i zwraca w nich wywolanie metod swojego prywatnej zmiennej obiektDao
5. Pozostają jeszcze mapowania- po pierwsze w pakiecie ...persistence w pliku dao.xml dopisujemy stworzony interfejs DaoObiekt i implementacje ObiektSqlMapDao
po drugie w pakiecie ...persistence.sqlmapdao.sql w pliku sql-map-config.xml dopisujemy plik z mapowaniem, który zaraz stworzymy
i na koniec jeszcze tworzymy plik Obiekt.xml z mapowaniem w pakiecie ...persistence.sqlmapdao.sql
Generalnie przy czytaniu tego polecam prześledzić projekt ze zwierzakami, ktory swego czasu wrzuciłem na zpp2009a(katalog ibatistut). Tam tez mozna przyjrzeć sie jak wygląda plik xml z mapowaniem i standardowe zapytania. Jesli chodzi o zapytania troche bardziej zlozone(np listy itp.), to w ramach wiedzy chetnie bede rozwiazywal problemy.
Jeszcze jedno- pytaliscie tez o jakąs automatyzacje w tworzeniu kodu i tu mam niestety nienajlepsze wiesci, bo narzedzie, które do tego sluzy tworzy bardzo duzo śmieci i uzywanie go sprawia wiecej klopotu niz pozytku. Wydaje mi sie jednak, ze poza tym, ze trzeba stworzyc jakies dwie klasy wiecej, niz sie wydaje potrzebne, i kazda funkcje dopisac jeszcze w tych dwoch klasach, to jest to robota, tak automatyczna i zajmująca tak malo czasu, ze da sie to przezyc. Przepraszam, jesli oczekiwaliscie czegos prostszego i wymagającego mniej pisania, ale takie rozwiaznie znalazlem i widzialem w jakiejs aplikacji- nie udalo sie dogadac tego wczesniej, teraz juz nie ma zbyt wiele czasu na jakies radykalne zmiany, takze moim zdaniem zostanie przy tym ibatisie bedzie jednak najlepszym wyjsciem.
pozdro
Paweł prosił o małe HOWTO, jeśli chodzi o ibatisa. A zatem, zeby dodac mapowanie danej klasy z modelu trzeba(nasza klasa nazywa się Obiekt):
1. Mapowana klasa musi mieć standardowe akcesory do wszystkich mapowanych obiektów.
2. W pakiecie ...persistence.iface tworzymy interfejs ObiektDao, tam dopisujemy kolejne funkcje w javie, które potem będą zmapowane na pobieranie z bazy(wszelkie selecty, update, insert, delete itp)
3. W pakiecie ...persistence.sqlmapdao tworzymy klase ObiektSqlMapDao, ktory implementuje stworzony w 2 interfejs oraz jest podklasą BaseSqlMapDao z tego samego pakietu. Tutaj tez piszemy, ze nasza funkcja np getObiekt zwraca mapowanie "getObiekt" z jakims tam parametrem.
4. w pakiecie ...service tworzymy klase ObiektService, ktora ma znowu te same funkcje, co poprzednio utworzona klasa i interfejs i zwraca w nich wywolanie metod swojego prywatnej zmiennej obiektDao
5. Pozostają jeszcze mapowania- po pierwsze w pakiecie ...persistence w pliku dao.xml dopisujemy stworzony interfejs DaoObiekt i implementacje ObiektSqlMapDao
po drugie w pakiecie ...persistence.sqlmapdao.sql w pliku sql-map-config.xml dopisujemy plik z mapowaniem, który zaraz stworzymy
i na koniec jeszcze tworzymy plik Obiekt.xml z mapowaniem w pakiecie ...persistence.sqlmapdao.sql
Generalnie przy czytaniu tego polecam prześledzić projekt ze zwierzakami, ktory swego czasu wrzuciłem na zpp2009a(katalog ibatistut). Tam tez mozna przyjrzeć sie jak wygląda plik xml z mapowaniem i standardowe zapytania. Jesli chodzi o zapytania troche bardziej zlozone(np listy itp.), to w ramach wiedzy chetnie bede rozwiazywal problemy.
Jeszcze jedno- pytaliscie tez o jakąs automatyzacje w tworzeniu kodu i tu mam niestety nienajlepsze wiesci, bo narzedzie, które do tego sluzy tworzy bardzo duzo śmieci i uzywanie go sprawia wiecej klopotu niz pozytku. Wydaje mi sie jednak, ze poza tym, ze trzeba stworzyc jakies dwie klasy wiecej, niz sie wydaje potrzebne, i kazda funkcje dopisac jeszcze w tych dwoch klasach, to jest to robota, tak automatyczna i zajmująca tak malo czasu, ze da sie to przezyc. Przepraszam, jesli oczekiwaliscie czegos prostszego i wymagającego mniej pisania, ale takie rozwiaznie znalazlem i widzialem w jakiejs aplikacji- nie udalo sie dogadac tego wczesniej, teraz juz nie ma zbyt wiele czasu na jakies radykalne zmiany, takze moim zdaniem zostanie przy tym ibatisie bedzie jednak najlepszym wyjsciem.
pozdro