30 sierpnia 2007

Już jest Red Hat Developer Studio

Wreszcie pojawiło się niecierpliwie oczekiwane Red Hat Developer Studio, wersja beta 1. Co to jest? IDE zbudowane na bazie Eclipse IDE, a konkretnie na bazie Exadel Studio Pro, znakomitego produktu należącego do kupionej niedawno przez Red Hat firmy Exadel. Co takiego wspaniałego ma to IDE? Wygląda na to, że nie tak wiele ponad to, co miał produkt Exadel’a, ale to już wystarczy by być numerem 1. Pakiet instalacyjny Red Hat Developer Studio jest dość pokaźnych rozmiarów, wersja pod Windows to aż 524MB, ale jest tam nie tylko IDE. Pakiet zawiera także serwer aplikacyjny JBoss Application Server 4.2. Instalator pyta nas czy chcemy zainstalować ten serwer czy tylko IDE, więc przeciwnicy paczek w stylu wszystko w jednym nie powinni bardzo narzekać, a ci którzy chcą używać JBoss AS mają ułatwione zadanie. Dobrą wiadomością dla wielbicieli nowości jest, że IDE zostało zbudowane na Eclipse w wersji 3.3. Dla nieświadomych użytkowników Exadel Studio mam jeszcze jedną wiadomość. Dziś, tj. 30 sierpnia wygasła licencja. Co prawda można rozwijać istniejące projekty, ale tworzenie nowych nie jest już możliwe, co widać na poniższej ilustracji.

8 sierpnia 2007

Dynamiczne zapytania z Apache iBATIS Data Mapper

Napisałem jakiś czas temu w artykule "Dynamiczne zapytania i selekcja poprzez przykład czyli Hibernate nokautuje JPA" o wsparciu dla dynamicznych zapytań oferowanym przez Hibernate i o braku takowego w specyfikacji JPA. Zajmuje się ostatnio porównywaniem różnych technologii trwałości danych dla Javy, więc w ramach porównania opisze dziś jak dynamiczne zapytania wspiera Apache iBATIS Data Mapper (iBATIS SQL Maps). Dla przypomnienia czym jest iBATIS polecam lekturę moich poprzednich artykułów na ten temat: "Wstęp do technologii Apache iBATIS Data Mapper", "Uruchamiamy aplikację JPetStore dla Apache iBATIS Data Mapper", "Niebanalny przykład mapowania dla Apache iBATIS Data Mapper".

Wyszukiwanie z użyciem technologii iBATIS Data Mapper realizujemy poprzez uruchomienie zapytania SQL zdefiniowanego w pliku XML. iBATIS wspiera definiowanie dynamicznych zapytań udostępniając odpowiednie znaczniki XML. Dla przykładu weźmy klasę:

public class Person {
private String firstName;

private String lastName;

// nie istotne szczegóły pomijam
}

Załóżmy, że klasa ta odwzorowana jest w bazie danych do tabeli i kolumn o nazwach analogicznych do odpowiednio nazwy klasy i nazw atrybutów z tą różnicą, że pisanych dla odróżnienia wielkimi literami. Dynamiczne zapytanie SQL wyszukujące obiekty klasy Person mogłoby wyglądać następująco:

SELECT * FROM PERSON

<dynamic prepend=”WHERE”>
<isNotNull prepend=”AND” property=”firstName”>
FIRSTNAME = #firstName#
</isNotNull>

<isNotNull prepend=”AND” property=”lastName”>
LASTNAME = #lastName#
</isNotNull>
</dynamic>

Naturalnie iBATIS oferuje również warunki inne niż isNotNull, ale to już szczegół, bowiem całość nie jest niestety zbyt ciekawa. Wsparcie dla dynamicznych zapytań jest mocno ograniczone. iBATIS nie wspiera w sposób jawny dynamicznej listy tabel i związanej z nimi listy warunków złączeniowych. Nie jest więc możliwe zdefiniowanie w ten sposób zapytania, którego kryteria odwzorowane są w drzewie powiązanych klas a nie w pojedynczej klasie. Nie da się więc zdefiniować dynamicznego zapytania dla formatki wyszukiwania faktur w której oprócz kryteriów dotyczących samej faktury takich jak wartość czy data wystawienia będziemy mieli kryteria dotyczące wystawcy czy odbiorcy.

2 sierpnia 2007

Wyniki ankiety 'Czy znasz i używasz JDO'

Jakiś czas temu zainteresowałem się specyfikacją JDO. Poszukałem, poczytałem, napisałem artykuł „Co to jest JDO i co nowego w JDO 2.0” i wywiesiłem ankietę. Wyniki poniżej. Głosów nie ma wiele, ale wystarczy by potwierdzić, że specyfikacja jest plus minus martwa. JDO bez wątpienia zasługuje na chwalebne miejsce w dziejach IT i Javy w szczególności, ale w chwili obecnej ja nie znajduję powodów, dla których warto by było inwestować w to swój czas i siły. Pewną szansą dla JDO może być jeszcze JPOX 1.2, a mówiąc precyzyjniej jego wsparcie dla obiektowej bazy danych DB4O które ma nadejść wraz z tą wersją. Obserwując jednak stopień frustracji zespołu JPOX w liczbie dwu osób można mieć wątpliwości czy wersja ta wyjdzie z fazy beta, a jeśli tak to czy jej użytkowanie nie będzie obarczone zbyt dużym ryzykiem wiążącym się z niepewnym jutrem. Ja z pewnością będę monitorował sytuację i być może przyjże się JDO jeszcze raz, w innym, czysto obiektowym świetle.

nie znam i nie interesuje mnie28 %
8
nie znam ale chętnie poznam48 %
14
znam troche3 %
1
znam dobrze ale nie lubię3 %
1
znam dobrze i lubię17 %
5