sobota, 15 listopada 2008

OpenBaseMovil-db czyli baza danych na komórki !

Czasu ostatnio mało... nie, ja zawsze cierpię na brak czasu! No ale nic z tym nie mogę zrobić. Szkoła, praca, praca inżynierska i na dodatek zapisałem się na kurs przygotowujący do certyfikatu z DB2 - DB2 9 Family Fundamentals. Baza danych dość ciekawa. Po wykonaniu pierwszych ćwiczeń znam więcej poleceń z konsoli niż z reszty baz danych jakie używałem łącznie. No ale nie o tym miałem pisać...

Wracamy do tematyki J2ME! Skoro wiemy już jak zapisywać dane w RMS i wiemy, że jest to bardzo niewygodne trzeba użyć czegoś z "jajami"!
OpenBaseMovil to właśnie taki framework. Jego część nazywająca się OpenBaseMovil-db to nic innego jak baza danych na urządzenia mobilne. Co prawda nie możemy używać SQLa i innych fajerwerków z nim związanych ale to nic! I tak użycie tej biblioteki w OGROMNYM stopniu ułatwi nam zarządzanie danymi w aplikacjach.

OpenBaseMovil-db jest relacyjną bazą danych napisaną w Javie na urządzenia obsługujące Jave (Java ME). Twórcy zadbali o to by była obsługiwana przez wszystkie urządzenia niezależnie od modelu czy wersji oprogramowania (przynajmniej tak jest napisane w dokumentacji;P). Wielkość bazy danych, tabeli, wiersza jest ograniczona tylko poprzez wielkość dostępnej pamięci.

Zacznijmy od bibliotek które są wymagane w classpath projektu. Oto lista:

Trochę ich sporo ale funkcjonalność nam to wynagradza:)

No to już możemy przejść do tworzenia bazy:
Database db = Database.create("TestDB");
db.start();
To chyba nie trzeba wyjaśnień.
Aby dodać przykładową tabelę z polami np id oraz imię wykonujemy polecenie
Table newTable = new Table("Names");

newTable.addColumn("id", Constants.FT_INT);
newTable.addColumn("name", Constants.FT_STRING, 20); // 20 oznacza długość pola
// tworzymy indeks na polu id
newTable.createIndex("main_index", "id");

db.createTable(newTable);

Co do nazwy tabeli to należy pamiętać, że musi być ona niepowtarzalna w obrębie wszystkich baz danych. Dość spore ograniczenie ale kto będzie miał w aplikacji na komórce wiele baz danych?!

Aby dodać jakiś wiersz należy utworzyć obiekt typu Row z odpowiedniej tabeli:
Row row = newTable.createRow();
row.setField("id", new Integer(1)); // można także row.setField("id", "1");
row.setField("name", "Duke");
row.save(); // Można także newTable.save(row);
No i mamy dane w bazie:)

Wyszukiwanie i przegląd tego co się znalazło wykonuje się następująco:
RowSet rows = newTable.find("id", new Integer(1));
while (rows.next()) {
System.out.println( rows.getCurrent().getString("name") );
}
Tyle chciałem przedstawić jako szybki i praktyczny wstęp do biblioteki. Oczywiście to nie wszystko! Zachęcam do przeczytania OpenBaseMovil-db-DeveloperGuide-3.0.02.pdf oraz do zaglądania tutaj bo z pewnością to nie pierwszy wpis na ten temat ;-)
No to wracam do pisania inżynierki...

5 komentarzy:

  1. Hej hej. Staram sie wlasnie zainstalowac te biblioteki w netbeans 6.8. Czy jest mozliwosc zeby to opisac krok po kroku co zrobiles zeby to wszystko Tobie dzialalo? Dzieki

    OdpowiedzUsuń
  2. wystarczy dodać te biblioteki do projektu. Prawy przycisk myszy na nazwę projektu na liście -> properties -> Build -> Libraries & Resources -> Add Jar/Zip.

    i będzie działać :)

    OdpowiedzUsuń
  3. Hej. Zrobilem jak napisalem i jak kompiluje to wysklakuje mi cos takiego.

    Error preverifying class com.basemovil.vc.view.Action
    VERIFIER ERROR com/basemovil/vc/view/Action.()V:
    Cannot find class java/util/Map

    Masz jakies rozwiazanie na ten problem? Uzywam NetBewans 6.8 Pozdrawiam

    OdpowiedzUsuń