Odczyt danych z bazy danych

0

Cześć, może trywialne pytanie, ale dopiero raczkuję jeśli chodzi o bazy danych. Mogę bezpośrednio w kodzie pisanym w Javie odczytać dane z pliku sql i robić zapytania względem niego? Czy MUSZĘ mieć postawiony serwer np. MySQL i dopiero wtedy odnieść się do bazy? Chciałbym odczytywać i wyświetlać tekst zawarty w konkretnych rozdziałach i ponumerowanych wersach. Baza danych wydaje się tu najlepszym rozwiązaniem.

3

Jeśli chcesz pisać i czytać dane używając SQL to tak, potrzebujesz relacyjnej bazy danych. Istnieją bazy które możesz odpalić wewnątrz procesu JVM, np. H2 - możesz skonfigurować ją tak, aby zapisywała dane w konkretnym miejscu na dysku (albo działać w pełni in memory).

0
haracz napisał(a):

Chciałbym odczytywać i wyświetlać tekst zawarty w konkretnych rozdziałach i ponumerowanych wersach. Baza danych wydaje się tu najlepszym rozwiązaniem.

Ale czy relacyjna ?
jest jakby sześcianem N wymiarowym (z wieloma kostkami pustymi).

Jak dopiero raczkujesz, zakodowanie HIERARCHICZNYCH danych w bazie relacyjnej moze być wyzwaniem

Oprócz baz np dokumentowych mi przed oczami się wyświetla: plik JSON

1

Chciałbym odczytywać i wyświetlać tekst zawarty w konkretnych rozdziałach i ponumerowanych wersach. Baza danych wydaje się tu najlepszym rozwiązaniem.

Można sobie zrobić jakąś bazę in-memory (ConcurrentHashMap) i w niej przechowywać dane.
Musisz napisać konkretnie co chcesz zrobić i jaki problem zrealizować.

Jeżeli masz jakąś książkę czy kurs gdzie ktoś wrzucił skrypt SQL z danymi do zaimportowania do bazy, to najlepiej będzie sobie postawić np. PostgreSQLa i tam to wrzucić. Tylko aby dostać się do bazy, to albo będziesz robił to czystym JDBC, albo JDBCTemplate ze springa (polecam) albo poprzez JPA.

3

Najprostsze rozwiązanie to SQLlite, jest to baza plikowa (nie wymagane jest stawianie serwerów itp), która wspiera SQLa. To jak ci nie odpowiada rozwiązanie @damianem to poczytaj o SQLlite.
A jak byś potrzebował MySQLa albo PostgresSQL to polecam poczytać o dokerze i kontenerach. Znacznie to ułatwia pracę z takimi bazami bez robienia sobie syfu na systemie.

0
UglyMan napisał(a):

Najprostsze rozwiązanie to SQLlite, jest to baza plikowa (nie wymagane jest stawianie serwerów itp), która wspiera SQLa.

Dzięki. Chyba to będzie najrozsądniejsze. Tylko pytanie jakie formaty plików obsługuje SQLite? Zacząłem robić bazę w XAMPP w panelu phyMyAdmin, bo akurat mam to na studiach teraz i zależy mi na tym, żeby właśnie tego użyć, aby utrwalić wiadomości, a format w jakim można zapisać bazę to m.in. .sql. SQLite odczyta taką bazę? Ewentualnie widziałem konwertery online z sql na sqlite.

0

@haracz: Jak masz bazę w Mysqlu - na to wskazuje phpMyAdmin - to pewnie jakoś tam da się zrzucić strukturę bazy danych. Jak nie masz jakiś nietypowych konstrukcji typowo pod MySqla to powinno dać sie to użyć SQL lite.

1

SQL Lite jest niezbyt udaną bazą do edukacji.

Ma bardzo luźne kontrole, pola tak właściwie to nie mają typów ani limitu długości.
Można się nauczyć nt baz "eskuelowych" źle.

Wymienione wbudowane bazy javowskie mają w swoim targecie bardzo dobrą kompatybilność z głównym nurtem rynku, słyszałem o testowaniu rozwiązań oraclowych na derby

1

@haracz: Jak chcesz robić zapytania do bazy danych, to warto mieć bazę danych, więc warto ją postawić. Wyszukiwanie w tekście to akurat zadanie z którym SQL radzi sobie średnio, hasło w Google: "full text search".

Jeżeli pracujesz na windows, to polecam:
Otworzyć powershell w trybie administratora.
Zainstalować Chocolatey

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Zainstalować sobie np. PostgreSQL:
choco install postgresql

2
piotrpo napisał(a):

Wyszukiwanie w tekście to akurat zadanie z którym SQL radzi sobie średnio, hasło w Google: "full text search".

PostgreSQL i Oracle to umieją, tylko teraz nie pamietam czy to jest w wersji podstawowej czy trzeba coś doinstalować. Oczywiście nie ogarnie to takich ilości danych jak Elastic ale w wielu projektach będzie to wystarczające a jeden serwer/tool do utrzymania mniej

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