SQLite: za i przeciw

0

Witam,

piszę program, który będzie służył w pewnej firmie do zarządzania zleceniami. Zleceń tych będzie ciagle przybywało i zastanawiałem się jak je przechowywać. Stwierdziłem, że do przechowywania ich na dysku odpowiednia będzie baza danych SQLite. Co o tym sądzicie?

0

Jeżeli to ma być wbudowana baza danych programu to rozwiązanie typu SQLite jest jak najbardziej na miejscu. Chociaż jeżeli piszesz w Javie to chyba lepiej by było użyć HSQLDB, która jest też głównie przeznaczona do rozwiązań wbudowanych i jest w 100 % w Javie.

0

To może w takim razie mała pomoc? Zainteresowałem się HSQLDB i ściągnąłem plik .jar z driverem i enginem. Nie wiem tylko jak go zaimportować wyczytałem coś o classpath tylko nie wiem jak tego użyć. Zdefiniowałem zmienna srodowiskowa CLASSPATH jako pelna sciezke dostepu do pliku wspomnianego pliku .jar.

        try{
            Class.forName("org.hsqldb.jdbc.JDBCDriver");
        } catch(ClassNotFoundException e){System.out.println("Błąd wczytywania sterownika dazy danych: "+e);}

Jednak po odpaleniu tego kodu sterownik nie jest wczytany.

0

Otwórz tego jar'a co ściągnąłeś i zobacz czy ta klasa tam siedzi.
Jeżeli tak to po prostu konfigurowałeś tego classpath źle.
Jeżeli nie to albo masz złego jar albo potrzebujesz jakiegoś dodatkowego.

0

Z plikiem wszystko ok. Sprawdzałem. Powiedzcie tylko czy dobrze zrobiłem z ta zmienną. Wrzuciłem ją przez System->właściwości->zaawansowane->zmienne środowiskowe i tam dodałem nową CLASSPATH, w która wkleiłem pełną ścieżkę dostępu (np. C:...\plik.jar). Po zrobieniu tego wszystko powinno banglać tak? nie musze się martwić importowaniem niczego do klasy programu?

0

Musisz. Zmienna CLASSPATH mówi programom java i javac gdzie mają szukać klas(pakietów). Deklaracje importu mówią czego szukać.

0

Hmm, no nie wiem jak Wy ale jak ja pisze aplikacje z SQL i uzywam sterownika JDBC to staram sie nie importowac nic z tych sterownikow aby pozniej moc zmienic baze jakby co. Posluguje sie tylko interfejsami z javax.sql. A do Class.forName nie trzeba miec zadnego importu tym bardziej - jakby byl import, to by znaczylo ze klasa jest "linkowana statycznie", to po kiego grzyba uzywac refleksje zebny ja wczytac?
Co do zmiennej CLASSPATH to jest ona wszech i wobec niezalecana. Lepiej uzywac switcha -classpath do kompilacji / runtime, a Ty i tak pewnie uzywasz jakiegos IDE i na pewno mozna tam dodawac biblioteki - tego uzyj.

0

Klasa sterownika dla HSQLDB to org.hsqldb.jdbcDriver a nie org.hsqldb.JDBCDriver.

1 użytkowników online, w tym zalogowanych: 0, gości: 1