Pytanie w sprawie netbeans, database-connection, java, derby – łączenie się z bazą danych derby opartą na plikach

6

Chcę pracować z bazą danych opartą na plikach przy użyciu derby apache. Zastanawiałem się, czy ktokolwiek może ustalić, jak połączyć i utworzyć tę bazę danych, używając netbeans jako IDE. Przeszedłem przez podręczniki derby, próbując to zrozumieć, ale wszystko, co dostałem, to „Połączenie bazy danych JDBC z wbudowanym Derby”, które, jak mi powiedziano, nie jest podejściem opartym na plikach i tak czy inaczej, połączenie nie działa. wszelka pomoc byłaby bardzo mile widziana

Myślę, że „połączenie JDBC DB Embedded Derby” to rozwiązanie, którego szukasz. Odpowiedziałem poniżej, opisując, jak używać bieżącego interfejsu NetBeans IDE do manipulowania derby. Tak czy inaczej Twoje dane zostaną ostatecznie zapisane w pliku. Główną różnicą jest to, czy wybierzesz wbudowaną trasę, czy trasę serwera klienta, gdzie trasa serwera klienta wymaga portu na hoście, co pozwala wielu klientom na dostęp do bazy danych w tym samym czasie. simgineer

Twoja odpowiedź

4   odpowiedź
1

pakietu „All”, otrzymasz serwer aplikacji glassfish. Po zainstalowaniu w / glassfish, w IDE powinieneś być w stanie wybrać zakładkę Usługi> Rozwiń bazy danych i powinieneś zobaczyć Java DB. R. Kliknij Java DB i wybierz Uruchom serwer. Następnie R. Kliknij ponownie i wybierz Utwórz bazę danych. Wprowadź nazwę bazy danych, użytkownika i hasło. Przy okazji normalnie używam APP zarówno dla użytkownika, jak i hasła, ponieważ w ten sposób staje się on również domyślnym schematem i nie muszę zmieniać niczego w środowisku produkcyjnym.

Teraz w grupie Java DB powinieneś zobaczyć nową utworzoną bazę danych. R. Kliknij i wybierz connect. Powinieneś zobaczyć moduł połączenia w grupie Bazy danych. Rozwiń ten element i powinieneś zobaczyć schemat APP pogrubiony, wskazując, że jest to schemat domyślny. Rozwiń to i R. Kliknij Tabele, wybierz Utwórz tabelę, a otrzymasz interfejs użytkownika, który pomoże wypełnić tabelę. Powtarzaj, aż wszystkie tabele zostaną utworzone. Inne sposoby tworzenia tabel przy użyciu idea to kliknięcie prawym przyciskiem myszy tabel i wybranie polecenia Wykonaj, w którym można uruchomić DDL, aby zdefiniować schemat tabel. W ten sposób robię tworzenie db, zapisując mój skrypt jako plik .sql, dzięki czemu mogę usunąć db i uruchomić go ponownie w razie potrzeby.

Oto przykład mojego skryptu dbinit.sql, którego używam do tworzenia moich tabel w derbach.

create table usertable (
    username varchar(128) NOT NULL CONSTRAINT USER_PK PRIMARY KEY ,
    password varchar(128) NOT NULL,
    email varchar(128) NOT NULL,
    firstname varchar(128) NOT NULL,
    lastname varchar(128) NOT NULL
);

create table grouptable(
    username varchar(128) NOT NULL,
    groupid  varchar(128) NOT NULL,
    CONSTRAINT GROUP_PK PRIMARY KEY(username, groupid),
    CONSTRAINT USER_FK FOREIGN KEY(username) REFERENCES usertable(username)
        ON DELETE CASCADE ON UPDATE RESTRICT
);

insert into usertable(username,password,firstname,lastname) 
    values ('admin', '21232f297a57a5a743894a0e4a801fc3','','');
insert into grouptable(username,groupid) values ('admin', 'USER');
insert into grouptable(username,groupid) values ('admin', 'ADMIN');

Możesz łatwo usunąć utworzoną bazę danych, klikając prawym przyciskiem myszy bazę danych, R. kliknij bazę danych, którą chcesz usunąć, i wybierz usuń. i użyj ponownie skryptu, aby go zregenerować.

Mam nadzieję że to pomoże! :)

5

jdbc:derby:foo;create=truei utworzy bazę danych o nazwie foo w katalogu systemowym derby. Jeśli chcesz utworzyć taki w absolutnej lokalizacji na dysku twardym, określ bezwzględną ścieżkę.jdbc:derby:/home/me/foo;create=true.

Po utworzeniu bazy danych możesz połączyć się z nią za pomocą tego samego adresu URL lub możesz ją usunąć;create=true odejść.

Możesz ustawić katalog systemowy derby za pomocą właściwości systemu, np.System.setProperty("derby.system.homeSystem.setProp", "/home/bar/whatever");. Myślę, że trzeba to zrobić przed uruchomieniem bazy danych derby, ale nigdy nie próbowałem tego robić. Odkryłem, że ustawienie systemu derby w domu dla aplikacji i określenie względnego adresu URL bazy danych, aby działał lepiej, ale to jest osobiste preferencje.

więc jdbc jest wersją opartą na plikach? Amir.F
IIRC, wbudowany sterownik nie rejestruje się sam. Zróbnew EmbeddedDriver() (pozwól netbeansom wybrać odpowiedni dla ciebie - jeśli nie, twoja ścieżka klasy jest zła), odrzuć wynik i spróbuj się połączyć. Bill
Tak, w Javie zawsze łączysz się z Derby poprzez JDBC. jdbc: derby: to prefiks dla połączeń osadzonych. Jest inny dla połączeń z bazą danych sieciowych. Bill
przede wszystkim dzięki za odpowiedź, po drugie, wciąż nie mogę połączyć się z bazą danych, pomyślałem, że najpierw muszę zdefiniować bazę danych, a zrobiłem to przez interfejs netbeans (nie mam pojęcia, jak to zrobić inaczej) ), a to dało mi adres URL dla DB, który jest jdbc: derby: history; create = true przeniosłem wszystkie pliki jar derby do katalogu „lib” mojego projektu. Nadal pojawia się błąd „Nie znaleziono odpowiedniego sterownika”, więc sprawdziłem na innych forach, ale nie to, co mówią, wydaje się działać. Sądzę, że ma to związek z katalogiem, ale nie mogę tego zrozumieć. Amir.F
0

gdy chcesz mieć bazę danych opartą na plikach w Derby, powinieneś pobrać,derby

Rozpakuj plik. Uruchom startNetworkServer.bat wewnątrz katalogu bin. Uruchomi serwer derby, który będzie słuchał portu nr 1527.

Teraz w kodzie java:

DriverName = org.apache.derby.jdbc.ClientDriver

ConnectionString = jdbc: derby: // localhost: 1527 / nazwa_schema; create = true

Co więcej, możesz również wyszukiwać DB derby, tak jak w Oracle.

uruchom plik ij.bat znajdujący się w katalogu bin. następnie w wierszu polecenia:

połącz „podaj adres URL połączenia tutaj”

i możesz uruchomić kwerendy sql, takie jak polecenie Oracle.

Jeśli chcesz uruchomić serwer derby na innym porcie, wykonaj następujące polecenie w cmd:

startnetworkserver.bat -p 1234

2

którego chcesz użyć, to wbudowany sterownik w derby.jar. Zamiast wchodzić w „stronę kodowania rzeczy”, ponieważ jest na niej wystarczająco dużo przykładów, lubię używać netbeans, aby zrobić wszystko przed rozpoczęciem kodowania.

Ponieważ używam wbudowanego podejścia do konwersji plików wireshark / tcpdump / nmap na pozycje bazy danych, stosuję nieco inne podejście.

Ponieważ wolę od nas najnowsze stabilne wersje Derby zamiast zainstalowanej wersji, mam nieco inne podejście, które pozwala mi używać dowolnej wersji, jakiej pragnę, a także umieszczać bazę danych w katalogu danych ar / w, gdziekolwiek chcę, w pliku system.

Utwórz: mkdir -p $ HOME / opt / derby i cd ~ / opt / derby.Pobierz najnowszą wersję z db.apache.org, a unbundle jest w $ HOME / opt / derby /Utwórz dowiązanie symboliczne: ln -spwd/wersja pwd/najnowszy.Utwórz dowiązanie symboliczne: ln -spwd/najnowszypwdStartowe netbeany.

Od tego momentu możesz robić wszystko w netbeans:

Utwórz bibliotekę Ant i nazwij ją „ASF-Derby-Emb.”: Narzędzia-> Biblioteki mrówek-> Nowa biblioteka.W panelu ustawień ustaw ścieżkę klasy na /home/[loginid]/opt/derby/default/lib/derby.jar i opcjonalnie dodaj w derbytools.jar.Kliknij kartę źródłową i dodaj ją do ścieżki do kodu źródłowego, jeśli ją pobrałeś.Kliknij kartę javadoc oraz w / home / [loginid] / opt / derby / default / javadocs

Gdy zaczniesz kodować, po prostu dodaj bibliotekę ASF-Derby-Emb i zostanie ona automatycznie skopiowana do twojego „dist”.

Teraz skonfiguruj JavaDB.

Skonfiguruj kartę Usługi: Okno-> Usługi i wybierz tę kartę.Wybierz JavaDB i kliknij prawym przyciskiem myszy i zatrzymaj uruchomioną JavaDB.Wybierz JavaDB i kliknij prawym przyciskiem myszy, a następnie kliknij pozycję menu Właściwości, która spowoduje wyświetlenie okna dialogowego właściwości.Przejdź do katalogu instalacyjnego JavaDB: w $ HOME / opt / derby / default.Opuść lokalizację katalogu instalacyjnego bazy danych lub przejdź do katalogu, w którym chcesz go umieścić, ale upewnij się, że masz dostęp do odczytu / zapisu.kliknij „OK”, a teraz masz inną instalację JavaDB i lokalizację bazy danych.

Po prostu zmieniając lokalizację bazy danych, możesz umieścić bazę danych w dowolnym miejscu. Lub możesz wykonać to samo w kodzie, co adres URL: jdbc: derby: //katalog lokalizacji bazy danych.

W każdym razie teraz mogę skonfigurować moją bazę danych.

wybierz JavaDB i kliknij prawym przyciskiem myszy i wybierz „Utwórz bazę danych” i po prostu wypełnij okno dialogowe, a baza danych zostanie zainicjowana w katalogu, który został skonfigurowany w pliku właściwości.Utwórz połączenie: wybierz JavaDB, a następnie wybierz nazwę utworzonej bazy danych.

Od tego momentu są trzy możliwości:

Nie rób nic i utwórz kod potrzebny do utworzenia tabel itp.Utwórz projekt i utwórz katalog projektu najwyższego poziomu o nazwie sql i umieść wszystkie skrypty sql definiujące tabele itp. W tym katalogu.Użyj 'wbudowanego obiektu: Service-> jdbc: derby: // ??? i stwórz tabele za pomocą obiektu, który się pojawi i pozwoli ci wprowadzić niezbędne sql.

Osobiście (2) Początkowo uważam się za najlepsze podejście. Jeśli masz już istniejące skrypty sql z rozszerzeniem .sql, po prostu otwierając je w ramach projektu, zostaną one załadowane do edytora sql i mogą być tam uruchomione.

Alternatywnie (3) można użyć i zapisać wynikowy skrypt.

W każdym razie wiele można stworzyć przed rozpoczęciem kodowania. Jest na to wiele sposobów. Wolałbym mieć wszystko utworzone przed kodowaniem - znacznie ułatwia to tworzenie przypadków testowych i używanie poprzedzających nie muszę przeskakiwać do sieci i modyfikować rzeczy.

Powiązane pytania