Java-Anwendung mit DB, GUI, etc.

dwc

Neues Mitglied
Hallo zusammen,

ich möchte gerne eine kleine Anwendung bauen. Die entsprechende GUI soll grob so aussehen:
GUI Prototyp.jpg

Ich habe keine Ahnung wie ich loslegen soll. Könnt Ihr mir helfen?

Ich würde gerne mit Eclipse arbeiten und suche im Prinzip ein kleines Beispielprojekt, dass eine DB, Hibernate und eine erste kleine GUI hat. Ich würde mir gerne zunächst mal die durchgängige Implementierung von GUI-Eingabe bis DB und zurück anschauen um einen Enstieg zu finden der von der Konfigurationshölle abstrahiert.

Meine Zielvorstellung ist eine Applikation die sich via Desktop-Icon starten lässt (zunächst also als lokales Programm).

Ich denke eine Client-Serverarchitektur ist da hilfreich da ich zustäzlich den Client zukünftig austauschen können möchte (Standalone via Weboberfläche) um die Anwendung später mal zu verbreiten.

Wie würdet Ihr anfangen, was ist Eurer Ansicht nach komfortabel insbesondere hinsichtlich GUI und der DB-Anbindung?
Welchen Technologiestack würdet Ihr wählen?

Mfg
dwc
 

dzim

Top Contributor
Du möchtest ein Hibernate haben? o_O
soll heisse, du möchtest per ORM auf deine DB zugreifen, nicht per Good Old JDBC, richtig?
Ist eigentlich austauschbar. Verwende für einen ersten Wurf vielleicht was kleines. Zum Beispiel die Eine-Datei-SQL-DB SQLite (von hier als eine einzige JAR zu beziehen: https://bitbucket.org/xerial/sqlite-jdbc ). Kannst du später auf einem Server immer noch austauschen. Dann z.B. MySQL, MariaDB oder Postgres - oder auch MongoDB/Couchbase, wenn du zu den NoSQL-ern möchtest.

GUI: JavaFX - die reine GUI lässt sich recht fix mit dem SceneBuilder zusammenschustern, oder in Eclipse mit dem e(fx)clipse-Plugin per JSON-ähnlicher DSL mit dem Namen FXGraph bauen. da du keine Rocket-Science in der GUI haben wirst, sollte das schnell gehen.

Hier wäre der erste Teil wohl zu Ende.
Baue dann vielleicht einen Server (z.B. Tomcat oder Jetty) und biete die Daten per REST(ähnlicher)-Services an. Passe deine GUI an das es klappt.

Der nächste Schritt, wenn du anfangs tatsächlich SQLite verwendet hast: Tausche die DB aus.

Wieder der nächste Schritt: Überlege, ob du auch über das Internet auf deine Daten kommen möchtest. Wenn ja, dann musst du dir nun Gedanken über den Zugriff auf den Server machen.

Wenn du das zuvor mit deiner GUI hinbekommen hast, kannst du dich nun an eine Re-Implementierung der GUI machen. Kannst du mit JSP machen, ich aber würde wahrscheinlich auf eine reine HTML5-Lösung setzen.

So betrachtet alles keine Hexerei, aber am ende recht viel Arbeit. Auch für ein relativ kleines Programm.
 

dwc

Neues Mitglied
Hallo,

vielen Dank zunächst mal für Deine Antwort. Ein paar Fragen/ Antworten habe ich noch:

>Du möchtest ein Hibernate haben? o_O
>soll heisse, du möchtest per ORM auf deine DB zugreifen, nicht per Good Old JDBC, richtig?

Genau. Wäre einfach chic. Aber was genau meinst du mit Good Old JDBC?

Hast Du vllt. ein Eclipse-Beispielprojekt (Hello World) zur Hand?
Mein Problem ist auch den Einstieg via Eclipse zu finden.

Wie setze ich das Projekt dort auf?

1) Eclipse installieren
2) e(fx)clipse-Plugin installieren
3) Was für ein Eclipse-Projekt erstelle ich am besten?
4) Wie binde ich dann die Eine-Datei-SQL-DB ein und spreche sie an?
....


Kannst Du da nochmal weiterhelfen?

Mfg
dwc
 

dzim

Top Contributor
Hibernate und so weiter sind zwar ganz nett, aber ich bin der Falsche, wenn es um eine fundierte Meinung geht, da ich es selbst nie verwendet habe.

JDBC = Java Dabase Connectivity: Java Database Connectivity
Sie ist die Basis-API für den Zugriff auf SQL-Datenbanken und wird von den meisten auch unterstüzt. Hier machst du halt keine Hibernate-Abfragen, die direkt in ein Objektmodell geparst werden, sondern bist recht Low-Level. Das hat Vor- und Nachteile. Nachteil: Musst dich um mehr selbst kümmern und Ahnung von SQL haben. Vorteil: Der Overhead (auch in Sachen Performance) der Middleware fällt weg.
Wenn es richtig umgesetzt wird, ist der Impact sicher nicht so gross, gerade für eine Anwendung wie deine, aber da ich es - wie gesagt - noch nicht gross verwendet hab, vermeide ich es meist. Das und dass ich einmal eine Android-Anwendung von ein paar Studenten gesehen habe, die zwar super-modular und so war, aber am Ende viel zu sehr abstrahiert. Verwendung von ORM (im Stil von Hibernate) und jeder Menge Statischen Klassen haben den Code extrem unübersichtlich und schwer nachzuvollziehen gemacht. Und ide ORM-Schicht hat es zu einer eher trägen Anwendung werden lassen (die sicher, aber das habe ich nicht überprüft, auch noch ein Batteriekiller war) .

Alternativen dazu wären http://www.jooq.org/ - unten drunter brauchen sie eh meistens JDBC und du musst ich noch um die JDBC-Treiber kümmern:

SQLite: https://bitbucket.org/xerial/sqlite-jdbc
Postgres: PostgreSQL JDBC Driver
MySQL: http://dev.mysql.com/downloads/connector/j/
MariaDB: https://mariadb.com/kb/en/mariadb/c...db-java-client/about-the-mariadb-java-client/

Du könntest natürlich auch im NoSQL-Lager schauen (http://www.couchbase.com/ , http://www.mongodb.org/ ). Vorteil: Kein ORM nötig, da direkt Objekte (de-)serialisiert werden. Nachteil: Eigene Abfragemethoden/-sprachen.

Zum Thema Eclipse:

Herunterladen:
Variante 1
- http://www.eclipse.org/downloads/?
- e(fx)clipse: http://www.eclipse.org/efxclipse/install.html - hier kannst du die "Update site" kopieren und zu Eclipse hinzufügen. Ist eher etwas für jene, die Eclipse schon ein wenig kennen.

Variante 2
All-in-One-Packet: http://efxclipse.bestsolution.at/install.html
Mit dem hier ist schon alles fix und fertig.

Starten
Beim Start wirst du gefragt, wohin die Projekte sollen. Ein sog. Workspace. Ich habe immer einen extra workspace-Ordner in dem ich verschiedene Workspaces für verschiedene Zwecke anlege.
Wenn Eclipse dann offen ist: File > New > Project... [Dialog geht auf] JavaFX > JavaFX Project [Next] Namen des Projekts eingeben [Finish oder Next] - wenn Next, kannst du noch Jar-Files anfügen etc. aber lass das alles erst mal, das kannst du immer noch später.

Und dann: Programmieren...

Wichtig ist: Aktuellstes JDK (im Moment 8u25) installieren. Wenn du mit dem Graphischen Editor UIs erstellen möchtest: SceneBuilder installieren (Version ist 2.x irgendwass, glaub ich).

Mach erst mal soweit, dann kannst du noch weiter fragen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
D Java Anwendung mit dll File Allgemeine Java-Themen 5
B JAVA Prozesse in einer eigenen Anwendung laufen lassen Allgemeine Java-Themen 9
B Web-Anwendung funktioniert mit Java 1.8, aber nicht mit Java 1.7 (auf Client) Allgemeine Java-Themen 5
F Java Anwendung Remote starten geht nicht Allgemeine Java-Themen 0
M Java Anwendung ausführen Allgemeine Java-Themen 5
U (Land-)Karten in Java Anwendung einbinden (GoogleMaps/OpenStreetMap) Allgemeine Java-Themen 7
S "Katalog"-Anwendung in Java eine gute Idee? Allgemeine Java-Themen 12
K Anwendung bringt JAVA Speicherfehler Allgemeine Java-Themen 11
C Java Anwendung nur einmalig starten Allgemeine Java-Themen 10
W Java Anwendung in HTML Allgemeine Java-Themen 2
P Java Anwendung mehr Speicher zur Verfügung stellen?? Allgemeine Java-Themen 3
C Kontextmenü erweitern und mit Java Anwendung verknüfen. Allgemeine Java-Themen 3
D Java Anwendung in der Shell Allgemeine Java-Themen 5
R Ausführbare Java Anwendung Allgemeine Java-Themen 27
A Java-Anwendung "richtig" schließen ohne JVM zu beenden Allgemeine Java-Themen 2
G Weboberfläche für Java Anwendung? Allgemeine Java-Themen 10
F Hilfe beim Starten einer Java Anwendung unter Windows gesuch Allgemeine Java-Themen 8
L Java 1.5 - Anwendung unter 1.6 JRE sehr langsam geworden Allgemeine Java-Themen 8
C Java-Anwendung beenden Allgemeine Java-Themen 3
G Auslesen mit welcher Java-Version Anwendung kompiliert wurde Allgemeine Java-Themen 2
G java als anwendung? Allgemeine Java-Themen 11
G Java Anwendung für Multi-User Allgemeine Java-Themen 2
N Linux-Commands über Java Anwendung ausführen Allgemeine Java-Themen 12
M Java-Anwendung von CD-ROM Allgemeine Java-Themen 19
C JAVA Anwendung - Was muss auf dem Server installiert sein? Allgemeine Java-Themen 6
S Java anwendung stürzt ab! Allgemeine Java-Themen 3
M PDF aus Java-Anwendung heraus steuern Allgemeine Java-Themen 5
BFreakout Hilfe! Java Anwendung läuft nicht. Allgemeine Java-Themen 8
L Java Anwendung Sprache auswählen? Allgemeine Java-Themen 2
F lizenzfreie Datenbank für JAVA-Anwendung Allgemeine Java-Themen 3
L JDBC Erklärung zu einer Java Anwendung Allgemeine Java-Themen 2
R Java-Anwendung kommerziell verteilen Allgemeine Java-Themen 3
V Java fertige Anwendung an einem Rechener ohne java install. Allgemeine Java-Themen 4
G Java Anwendung in Jar startet nicht Allgemeine Java-Themen 7
N Aus Anwendung zweite Java-Anwendung öffen. Wie? Allgemeine Java-Themen 6
G Java-Anwendung mit DB ohne Entwicklungsumgebung startbar? Allgemeine Java-Themen 5
L Windows-Anwendung aus Java-Programm starten Allgemeine Java-Themen 2
G portierung einer DOS Anwendung mit dbase - Dateien nach JAVA Allgemeine Java-Themen 3
T Anwendung von Java aus starten Allgemeine Java-Themen 3
M von der application zur einfachen java-anwendung Allgemeine Java-Themen 4
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben