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

Tworzenie obiektu klasy czy baza danych do przechowania wartości

Cloud VPS
0 głosów
590 wizyt
pytanie zadane 17 października 2016 w Java przez kaminki Obywatel (1,030 p.)
Piszę pewien program. Odbieram od użytkownika dane w dwóch klasach (Controllery w JavaFx). I tu pytanie:

Czy stworzyć klasę która będzie zawierała pola z odebranymi danymi i do obliczeń stworzyć obiekt tej klasy który będzie zawierał wszystkie dane czy wartości zapisywać do bazy danych i później do obliczeń z niej pobierać? Dane byłby pobierane z 3 okienek czyli z trzech klas (Controller) i wartości musiałby być dodane do tego samego obiektu co może nie być takie łatwe. Bazą danych było by SQLite. Dla prostych zastosowań. Który kierunek będzie lepszy?

1 odpowiedź

0 głosów
odpowiedź 17 października 2016 przez MichuDev Pasjonat (20,300 p.)
O jakiej ilości danych mówimy ? Im więcej tym lepiej użyć bazy danych.

Czy będą one wykorzystywane po pobraniu ich i wykonaniu tych obliczeń ? Jak tak to baza danych.
komentarz 17 października 2016 przez kaminki Obywatel (1,030 p.)
To będzie około 25 wartości. W kontrolerze będą pobierane od użytkownika. Później na podstawie tych danych będą wykonywane obliczenia. Czyli do obliczeń bym musiał pobierać je z bazy danych po kolei lub stworzyć klasę mapującą tabelę z bazy i wczytać wszystko do obiektu tej klasy a później wykonywać obliczenia. Co jest lepsze?
komentarz 17 października 2016 przez MichuDev Pasjonat (20,300 p.)
25 wartości to bardzo mało, a szczególnie zwykłych liczb. Nie widzę to potrzeby wykorzystania bazy danych, chyba, że chcesz te 25 wartości przydadzą ci się w każdym następnym uruchomieniu programu. Choć w przypadku tak małej ilości danych użyłbym pliku JSON / XML / YAML...

Jeżeli natomiast chcesz się nauczyć używania relacyjnej bazy danych w Javie jest to dobry pomysł.  

Nie musisz tworzyć klas mapujących obiekty!

Od czego jest JPA, Hibernate, Spring Data, Spring Data JPA ?
komentarz 18 października 2016 przez Trucik Obywatel (1,130 p.)
Zgadzam się z kolegą z postu wyżej w kontekście przechowywania tak małej ilości danych tj. w zupełności wystarczy Ci plik. Zastosowanie relacyjnej bazy danych tak jak napisałeś np. SQLlite ma sens jeśli struktura danych jest bardziej skomplikowana.

Nie zgadzam się jednak bardzo mocno co do użycia JPA. Jeśli nie masz w ogóle doświadczenia powinienś skorzystać z JDBC czyli najabrdziej podstawowego mechanizmu komunikacji z bazą danych. Dzięki temu w przyszłości będziesz miał większą szanse zrozumieć wyżej wymienione technologie, a nie pisać idiotyczny kod bo wszyscy tak robią.

Prosty przykład kodu dodającego dane do bazy: https://www.tutorialspoint.com/jdbc/jdbc-insert-records.htm

Prsoty przykład kodu wyciągającego dane z bazy: https://www.tutorialspoint.com/jdbc/jdbc-sample-code.htm

Zakładam, że pojęcia sql'a jak select, update, insert są Ci znane.

 

Workflow aplikacji jest dla mnie niejasny z opisu, ale komercyjnie robi się to tak:

1. Pobierasz od użytkownika dane w formularzu (okienku)

2, Obrabianie danych wstępnie np. ktoś podaje Imię i nazwisko w jednym polu, a Ty chcesz trzymać tow  osobnych kolumnach w bazie (głupi przykład, ale nie mam lepszego o tak późnej porze)

3. Zapisujesz do bazy (insert/update) to co jest Ci niezbędne w przyszłości

Wyświetlanie danych:

1. Pobierasz z bazy

2. Robisz jakieś operacje (jeśli musisz np. złączenie danych z kilku kolumn)

3. Wyświetlasz utworzone obiekty

 

Klasa powinna odpowiadać rekordowi tabeli. Czyli tak jak napisałeś dobrze zmapować nazwy kolumn na pola. Nawet wyrzej wymienione technologie to robią (tyle, że nie trzeba pisać tyle kodu)

 

sorry, że nie do końca składnie, ale za późno dla mnie:P
komentarz 20 października 2016 przez kaminki Obywatel (1,030 p.)
Spróbuję opisać jak ja to bym chciał zrobić. Dzieje się to w JavaFx i SQLite.

Są tabele z danymi (różne wartości odpowiadające jakimś nazwom) oraz tabela pomocnicza do obliczeń. Co do danych to np. Jeżeli użytkownik wybierze w checkboxie wartość C20/25 to z tabeli w DB z jej wartością zostanie wybrana odpowiadająca wartość i przekazana do tabeli pomocniczej. Tak samo będzie z innymi wartościami. Tzn wszystko co będzie potrzebne do wykonania obliczeń będzie znajdowało się w tabeli pomocniczej.

Będzie stworzona klasa mapująca tabele pomocniczą tak aby później stworzyć obiekt tej klasy zawierający wszystkie potrzebne dane do obliczeń (żeby za każdym razem nie pobierać z bazy danych). Dalej wykonując obliczenia będę odwoływał się do pozycji z obiektu tej klasy.

Myślę że to nie najgorsza droga gdyż dane będę pobierał z 4 okienek w JavaFx (w controllerach) więc i z różnych klas. Więc ciężko by było ( może czegoś nie wiem - jak tak to proszę o poradę odnośnie tego) pobrać dane od użytkownika, sprawdzić je w bazie danych a później przypisać do JEDNEGO i tego samego obiektu - aby było łatwo przy obliczeniach. A dane mam w bazie danych dlatego że będzie stworzone okienko w którym będzie można podejrzeć i edytować te wartości.

Podobne pytania

+1 głos
1 odpowiedź 783 wizyt
pytanie zadane 5 sierpnia 2019 w C i C++ przez luna22 Obywatel (1,420 p.)
0 głosów
0 odpowiedzi 806 wizyt
0 głosów
1 odpowiedź 129 wizyt

93,456 zapytań

142,451 odpowiedzi

322,721 komentarzy

62,837 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

Kursy INF.02 i INF.03
...