• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Początki z Java i pytanie dot. bazy danych oraz wybór formy zapisu

Object Storage Arubacloud
0 głosów
421 wizyt
pytanie zadane 22 lipca 2018 w Java przez Greeenone Pasjonat (16,100 p.)
edycja 22 lipca 2018 przez Greeenone
Hej wszystkim !

Od trzech dni przerabiam na wysokich obrotach Jave i mam pytanie dot. baz danych oraz formy zapisu. Mam zamiar stworzyć program który będzie musiał przechowywać następujące informacje:

- ID

- Nazwa

- Ścieżka do folderu

- Ostatnie uruchomienie

I teraz pytanie.. Czy należy do tego utworzyć jakąś bazę danych czy na taką małą ilość informacje wystarczy zwykły plik txt ? (Ew. coś innego tylko po to aby user nie namieszał).

Na razie w kursie widziałem zapisywanie danych do pliku tekstowego i odczyt(buffery itd). Problem jest taki, że użytkownik powinien móc swobodnie manipulować "obiektami" (Dodawać nowe obiekty, usuwać, zmieniać z poziomu programu) i... Jak się do tego zabrać? Czy do tego służy tokenizacja (którą teraz przerabiam), serializacja czy coś innego ?

I jeszcze jedne pytanie. Czy gdy użytkownik usunie dany obiekt o np. ID 4 to czy już zostawić tam "dziurę" czy stworzyć skrypt który sam wykryje dziurę i ją nadpisze kolejnymi danymi ?

Pozdrawiam !

 

//edit

Znalazlem cos takiego

https://crunchify.com/java-saving-and-loading-data-from-a-file-simple-production-ready-utility-for-file-readwrite-operation/

Czy to jest prawidlowe czy lepiej uzyc czegos innego?

//Edit2

Pewna osoba poleciła mi użyć JDBC ale czy jest sens przy tak małem bazie ?

4 odpowiedzi

+1 głos
odpowiedź 22 lipca 2018 przez Aisekai Nałogowiec (42,190 p.)
Jezeli nie chcesz sie bawic, na razie, w polaczenia z BD (bo fakt, 3 dni to trochę krotko - pewnie jeszcze dobrze OOP nie zrozumiales) to mozesz opakować w klasę i spróbuj użyć serializacji do zapisywania i pobierania danych z pliku .txt.

Najprościej, nie najoptymalniej i najbezpieczniej, byłoby po prostu na początku programu zaladowac cala baze (do np listy) a potem na końcu nadpisać cały plik, zapisując dane.

Na razie zabezpieczenia przed zmiana użytkownika bym odpuscil, ale starałabym sie to napisać tal, żeby potem zmieniając mało kodu, moc szybko podmienić pobieranie z "normalnej" BD (polimorfizm).
+1 głos
odpowiedź 22 lipca 2018 przez miro Pasjonat (23,870 p.)

Pewna osoba poleciła mi użyć JDBC ale czy jest sens przy tak małem bazie ?

Wg. mnie jest sens ogarnąć podstawy z SQL, nie jest tego tak dużo do podstawowych operacji. I tak będziesz musiał się tego nauczyć bo większość programów korzysta z baz danych. Polecam SQLite jako bazę danych, dzięki czemu nie będziesz musiał nic instalować. 

+1 głos
odpowiedź 22 lipca 2018 przez hiimRealgjm Początkujący (360 p.)
Najoptymalniej będzie użyć natywnej implementacji preferencji ze standardowej biblioteki Javy. Klasa Preferences...plik tekstowy może być, ale preferencje są specjalnie do takich zastosowań jak ty chcesz, a bazy danych to przerost formy nad treścią w tym przypadku. Dodatkowo jak kiedyś będziesz brał się za programowanie bazodanowe w Javie, to pod ŻADNYM pozorem nie tykaj tej prehistorii - JDBC, jeśli już to Spring JDBC - mniej boilerplate'u, a najlepiej wgl to Hibernate/Spring Data JPA. Jak najwcześniej Spring (oczywiście bez przesady :P). W tych czasach JDBC wykorzystują jedynie twórcy innych bibliotek/frameworków/ORM-ów dla baz danych.

 

Pozdrawiam, gjm
komentarz 22 lipca 2018 przez mbabane Szeryf (79,280 p.)

 to pod ŻADNYM pozorem nie tykaj tej prehistorii - JDBC

A według mnie warto się z tym zapoznać własnie po to żeby lepiej rozumieć JPA itd. 

komentarz 22 lipca 2018 przez hiimRealgjm Początkujący (360 p.)
Dobrze, ale ZAPOZNAĆ, a nie pisać w tym jakieś ERP czy nawet hobbystyczne projekty.
komentarz 22 lipca 2018 przez Wiciorny Ekspert (270,170 p.)

@mbabane, pewnie, że tak ... chodzi o to  żeby zrozumieć dialekt, połączenie itd... co przekłada się na lepsze zrozumienie np samych transakcji więc na pewno warto stosować i zaczynać z JDBC potem żeby na ORM nie robić fuck-upów 

1
komentarz 22 lipca 2018 przez Wiciorny Ekspert (270,170 p.)
a co wolałbyś zamiast hobbistycznego prostego projektu... pisać Produkcyjny system w oparciu o JDBC? :D non-sens.
komentarz 22 lipca 2018 przez mbabane Szeryf (79,280 p.)
edycja 22 lipca 2018 przez mbabane

 pisać Produkcyjny system w oparciu o JDBC? 

Teoretycznie nikt tego nikomu nie broni, tylko że to trąci o masochizm, więc proste "krudowe" programiki czemu nie, a nawet żeby utrwalić i przypomnieć sobie SQL - gdzie przy stosowaniu JPA można go całkowicie zapomnieć (a w Spring-data to już nie wspominając).

 

Dobrze, ale ZAPOZNAĆ, a nie pisać w tym jakieś ERP czy nawet hobbystyczne projekty.

Dlatego nie stosuj takich słów pod ŻADNYM pozorem - i to jeszcze z kapslokiem - bo ktoś to przeczyta potem weźmie do siebie i tylko na tym straci.

komentarz 24 lipca 2018 przez hiimRealgjm Początkujący (360 p.)
Zastosowałem Caps Lock-a poprawnie w tym zdaniu, gdyż chcę PODKREŚLIĆ, że należy materiał o JDBC tylko PRZEJRZEĆ, a nie się w niego ZAGŁĘBIAĆ, stąd słowo ZAPOZNAĆ.
komentarz 24 lipca 2018 przez hiimRealgjm Początkujący (360 p.)
Dodatkowo, jeśli ktoś to weźmie do siebie to tylko zyska nie siedząc w archaizmach takich jak JDBC.
komentarz 24 lipca 2018 przez mbabane Szeryf (79,280 p.)
Akurat nie o ten kapslok mi chodziło tylko o ten wcześniejszy, ale już mniejsza z tym. Powodzenia.
komentarz 24 lipca 2018 przez Wiciorny Ekspert (270,170 p.)

@hiimRealgjm, ale jak nie przysiedzi znacząco w JDBC, to nie pojmie mechanizmu Tranzakcji które narzuca mu spring/ czy Spring DATA, trudno mu bedzie wewnetrznie zrozumiec jak działą proxy tranzakcji,  jak steruje nimi sam spring, jakie są mechanizmy:

lockowania, synchronizacji, blokowania ... algorytmów fazowych to jest mega istotne.

Two-phaze locking to nie jedyna sprawa i nie wystarczy ACID żeby dobrze implementować transakcje 

0 głosów
odpowiedź 22 lipca 2018 przez Greeenone Pasjonat (16,100 p.)
Dziękuje wszystkim za odpowiedzi ! Po zapoznaniu się z nimi stwierdziłem, że jednak użyję do tego bazy danych SQL (O tyle dobrze, że nie jest mi obce i jakieś tam podstawy mam ^^) jako że program planuję rozwijać z czym wiązać się będzie większa ilość danych do zapisania :)
komentarz 24 lipca 2018 przez manjaro Nałogowiec (37,390 p.)
SQL to jest język a nie baza danych.
komentarz 29 lipca 2018 przez Greeenone Pasjonat (16,100 p.)
Tak, tak wiem ;P Po prostu jako, że jest powiązane z bazą danych to jakiś taki mi automatycznie z tym nawiązuje ^^

Podobne pytania

0 głosów
3 odpowiedzi 282 wizyt
pytanie zadane 17 października 2018 w SQL, bazy danych przez Greeenone Pasjonat (16,100 p.)
0 głosów
1 odpowiedź 464 wizyt
pytanie zadane 7 stycznia 2018 w Java przez Dominik Kulis Użytkownik (720 p.)
0 głosów
1 odpowiedź 315 wizyt
pytanie zadane 20 lipca 2018 w PHP przez dobre.rece Nowicjusz (200 p.)

92,576 zapytań

141,425 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...