Powiązanie aplikacji z bazą danych

0

Witam
Zaczynam pracować nad aplikacją w javie. Będzie opierała się na bazie danych MSSQL. Ponadto ma ona posiadać interfejs graficzny. I mam co do tego kilka pytań na które nie znalazłem jednoznacznej odpowiedzi.
Jak zacząć robić tą aplikację? Czy najpierw zrobić bazę danych potem napisać program i na końcu interfejs czy jak inaczej?
Jak powiązać bazę danych z aplikacją?
Jak rozwiązać problem kont użytkowników? Tak by można było się rejestrować i logować?

Z góry dziękuję za wszelkie wskazówki :-)

1

Proponuje użyc technologii które są do tego przeznaczone ;] To ma być aplikacja webowa? Desktopowa?
Kontakt z bazą -> JPA
Logowanie i security, jeśli to aplikacja webowa to -> Spring security albo Apache Shiro

Baza jako taka utworzy sie sama na podstawie klas encyjnych JPA. To czy zaczniesz od backendu czy od frontendu nie ma wielkiego znaczenia o ile użyjesz MVC.

0
  1. Jak kto lubi ja zaczynam, zazwyczaj od najwyższych "warstw" tutaj interfejs, aby później tylko oprogramować buttony
  2. http://www.vogella.com/tutorials/MySQLJava/article.html tutaj coś jest, ale osobiście zrobiłbym to:
    http://docs.oracle.com/javase/tutorial/networking/sockets/, ponieważ komunikacja lepiej, aby odbywała się przez serwer, niż, żeby użytkownik sam bezpośrednio wpisywał je do bazy
  3. Np. Do twojego serwera lecą dane z rejestracją serwer automatycznie łączy się z baza i wykonuje odpowiednie zapytania np. najpierw SELECT nick from uzytkownicy where nick=nickotrzymanywrejestracji tak samo z emailem jezeli to zachodzi wykonuje INSERT z danymi logowania SELECT * from uzytkownicy where nick=nickprzylogowaniu and haslo=hasloprzylogowaniu. I twoj skrypt/program if(istniejerekord) zaloguj jako...
0

Aplikacja ma być na desktop i ma pobierać dane z bazy danych. I właśnie ma być nieograniczona ilość użytkowników. A za pomocą czego utworzyć bazę danych SQL bo nie wiem od czego zacząć

0

To że aplikacja ma działac na komputerze to znaczy że nie może mieć webowego interfejsu :P
Skompiluj sobie i odpal to: https://github.com/Pharisaeus/SpringScaffoldApplication ;)

0

Ja bym jednak zaczął od podstawy, czyli bazy danych. Potem podłączenie do niej i cała logika biznesowa. Interfejs to raczej osobna sprawa.

0

@MiL tak się robi tylko i wyłącznie w systemach których celem jest efektywne przetwarzanie dużych ilości danych. A i tam nie zawsze.
W większości realnych zastosowań, w aplikacjach biznesowych stosuje się narzędzia typu ORM i inne pośredniczące technologie które automatycznie tłumaczą model dziedzinowy z aplikacji na model bazodanowy, bez potrzeby robienia tego ręcznie. Jest to tym wygodniejsze że ręczne modelowanie takich rzeczy jak dziedziczenie, w relacyjnej bazie danych, to nie jest taka prosta sprawa.
Z tym że

Interfejs to raczej osobna sprawa.

Nie mogę się zgodzić. Chyba ktoś używa doskonale MVC albo robi coś w stylu Backend as a Service, wtedy faktycznie może i się da zrobić totalną separacje. W praktyce różnie z tym bywa.

0

Czyli od czego najlepiej jest zacząć i z czego skorzystać?

0

Najlepiej zacząć od wyboru technologii z których chcesz korzystać. Możesz popatrzeć na ten projekt który podlinkowałem wyżej. To jest standalonowa aplikacja webowa, do jej odpalenia nie potrzeba nic instalować u użytkownika. Odpalasz ją jak zwykłego jara.

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