Ist Java die richtige Programmiersprache dafür?

petterapamm

Aktives Mitglied
Hallo,

Ich habe vor ein Art Datenbank-Programm zu schreiben. Über das Programm sollen Fotografien mit Tags versehen werden können (bzw es reichen Referenzen in den die Tags gespeichert sind die auf ein bestimmtes Foto verweisen), in einem Ordner abgelegt und angezeigt werden. Zudem soll es natürlcih eine Suchfunktion geben mit der man in der Datenbank dann über Tags nach Bildern suchen kann.
Die Datenbank soll bis zu 10 000 Bilder beinhalten können und es sollen mehrere Benutzer zugleich Bilder reinladen bzw suchen können. Die Daten liegen auf einem Hausnetzt internen Speicher, wahrscheinlich ein FTP. Ich könnte das noch um einiges ausführlicher beschreiben doch darum geht es nicht. Meine Frage ist ob sich Java als Programmiersprache eignet oder wenn nein welche Programmiersprache/n würdet ihr für so eine Art Projekt empfehlen und warum eignet sich Java nicht.

Danke für die Antworten
MfG
petterapamm
 

andiv

Bekanntes Mitglied
Mit Java kann man (genauso wie mit jeder anderen Turing-vollständigen Programmiersprache theoretisch auch) so ein Programm schreiben. Verwende die Programmiersprache die DU am besten beherrschst und die DIR am besten gefällt.
 

kay73

Bekanntes Mitglied
Meine Frage ist ob sich Java als Programmiersprache eignet
Dein Vorhaben klingt so nach "HelloWorld" für Enterprise-Anwendungen. :) Prinzipiell ist Java dazu perfekt geeignet und Dein Vorhaben liesse sich sogar äußerst elegant realisieren.
  • Bezüglich Datenbank würde an hier wohl keine Datenbank schreiben sondern eine Fertige dahernehmen, sei es was "Etabliertes" wie MySQL/PostgreSQL/Oracle oder eine Java Spezialität wie HSQLDB oder Apache Derby/JavaDB.
  • Das Daten-Model bildet man mitttels O/R Mapper wie JPA/Hibernate ab.
  • Die Eingabe- und Oberfläche realisiert man mit einem x-beliebigen View-Framework wie JSF/ Facelets oder Apache Wicket.
  • Laufen kann das Ganze in einem Servlet-Container wie Apache Tomact oder Jetty. Oder in einem "fetten" Application Server wie JBoss.
Es gibt auch Frameworks wie Spring oder JBoss Seam, die die Entwickung noch beschleunigen können. Ein erfahrener Java EE Entwickler kann das in zwei Tagen runterkloppen. Für Einsteiger ist die Lernkurve leider jedoch sehr steil. Da dein Datenmodell aber sehr sehr schlank ist, wäre es vielleicht ein wenig mit Kanonen auf Spatzen geschossen, es sei denn Du willst das als Einstieg für eine "JEE-Programmiererkarriere" verwenden.

Als Alternative bietet sich eine Apache/PHP/MySQL Lösung an; damit kommst Du vielleicht sogar am schnellsten zu Resultaten und es ist bedeutend weniger zu lernen.

P. s.: 10000 Bilder sind doch noch gar nichts... ;)
 
Zuletzt bearbeitet:

petterapamm

Aktives Mitglied
Das klingt sehr interessant. Danke für die ausführliche Antwort.
Ich möchte möglich viel lernen, hauptsächlich in Java.
Also werde ich deinen "Alternative" nicht in Betracht ziehen.

Hast du zufällig ein paar Links zu Seiten wo ich mich über die einzeln Sachen näher informieren kann bzw. lernen kann oder zu Tutorials?

Lässt sich eine solche Oberfläche auch mit JFC/Swing Elementen gestallten?

Danke nochmal
MfG
petterapamm
 
Zuletzt bearbeitet:

L-ectron-X

Gesperrter Benutzer

petterapamm

Aktives Mitglied
Ich habe nochmal eine allgemeine Frage:
Man kann doch eigentlich auch das ganze Programm nur mit einfacheren Java-Funktionen wie Arraylists oder In- und Outputstreams schreiben. Dies klingt zwar nicht nach einer eleganten Lösung, aber trotzdem würde ich gerne wissen wo genau dabei der Nachteil liegt.

Zudem würde ich gerne wissen ob man die Bilder mit in der JavaDB speicheren kann oder dort nur Referenzen auf die Bilder speichert.

MfG petterapamm
 

Empire Phoenix

Top Contributor
Ich würde die bilder als blob oder binary mit in die db packen. Den rest würde ich als Swing anwendung umsetzen(die dannn zb auf dem netzlaufwerk leigt so das jeder drauf zugreifen kann)
Bei inutput streams ist der anchteild as du selber sicherstellen msust das keine inkostenzen (zwei benutzer verändern gelichzeitig selbe datei) auftreten können.
 

petterapamm

Aktives Mitglied
Also gut, das stimmt, dies ist ein Nachteil, aber auch den kann man eigentlich aus dem Weg räumen. Was mich mehr interessiert, ist was im allgemeinen überhaupt die Vorteile von solchen Frameworks sind wie kay73 sie genannt hat. Warum sollte ich solche "vorprogrammierten" Datenbanken nutzen und nicht alles selber mit z.B. Arraylists schreiben?
Und noch etwas: Swing Elemente sind doch einzelne java-interne Elemente zur Erstellung eines GUIs, oder? Aber was ist eine Swing-Anwendung?

MfG petterapamm
 

homer65

Top Contributor
Du solltest dir auch Gedanken über ein Backup Konzept machen.
Wäre Schade wenn alle Bilder wegen eines Festplattendefekts plötzlich weg wären. :D
Nicht zu unterschätzen ist dabei die anfallende Datenmenge. Wenn du 10000 Bilder a sagen wir mal 5MB hast, sind das schon 50GB. Bewahrst du auch nur 10 Backups auf, so hast du schnell 500GB Backup Daten.
 
A

A0027301

Gast
@homer65 schon mal was vom Backupstrategien gehört? bsp. Inkrementelles Backup?

Vielleicht sollte man sich genrell erstmal entscheiden, ob es eine Desktopanwendung werden soll (Swing) oder eine Browseranwendung mit einem Applicationsserver
 

kay73

Bekanntes Mitglied
Allerdings weiß ich nicht, ob sich die Ideen, die kay47 vorgeschlagen hat, auch darauf beziehen.
Doch tun sie eigentlich schon, denn Swing ist auch nur eine View-technologie. Wenn Ihr Euch geschickt anstellt, bzw. die Komponenten ordentlich entwerft, trennt Ihr die Darstellung vom Modell. Dann könnt Ihr nachher ein Webinterface hintendran bauen, wenn es webgestützt werden soll.
 

petterapamm

Aktives Mitglied
Wie würdet ihr/du dafür sorgen das es nicht zu Inkostenzen kommt? JavaDB habe ich glaub ich jetzt soweit verstanden. Allerdings wird mir nicht klar wo für man Hibernat braucht, hier: Using Java DB in Desktop Applications wird es nicht benutzt oder?

Klar habe ich vor Model und View zu trennen, mit einem Controller als Schnittstelle dazwischen.

Vielen vielen Dank für eure ganze Hilfe, ihr bringt mich hier sehr viel weiter mit meinem Überlegen wie ich das angehen soll^^

petter
 
M

Marcinek

Gast
Der TO wird hier mit allen möglichen Frameworks zugedröhnt, von denen er nur 1% versteht.

Bevor du dir sorgen über inkonsitenzen machst, solltest du überhaupt was haben, was in ieiner weise das tut, was du möchtest.

Da ich von dem ersten Posting erstmal darauf schließe, dass du noch nie Java programmiert hast, wird das ehh nur so ein frikel Projekt.

..

Ich würde die Bilder nicht in einer DB speichern, sondern iwo auf einer Platte.

Du benötigst für eine Multi User Umgebung einen Server, der die Bilder dann verwaltet.

Ich schlage vor du nimmst dir Apache.. Ein bissel PHP und dann sparst du dir das in Java zu machen.

Um es in Java zu machen fehlen dir sämtliche Basics
 

petterapamm

Aktives Mitglied
Nein, ich habe schon Erfahrung in Java, programmiertechnisch NUR in Java. Daher würde ich das ganze gerne in Java verwirklichen.

Ich hatte das Projekt angegangen nur mit Arraylists und Iteratoren und In und Outputstream doch dann dachte ich mir das das doch irgendwie besser elegante gehen muss. Daher habe ich begonnen zu recherchieren und bin hier über jede Idee erfreut.

Auf dem Gebiet, DB etc, habe ich in der Tat keine Erfahrung deswegen stelle ich wahrscheinlich eher Fragen die ein kompletter Anfänger stellen würde.
 

petterapamm

Aktives Mitglied
Um noch mal zur Kerndiskussion zurückzukehren:

Wie würdet ihr/du dafür sorgen das es nicht zu Inkostenzen kommt? JavaDB habe ich glaub ich jetzt soweit verstanden. Allerdings wird mir nicht klar wo für man Hibernat braucht, hier: Using Java DB in Desktop Applications wird es nicht benutzt oder?

Klar habe ich vor Model und View zu trennen, mit einem Controller als Schnittstelle dazwischen.

Vielen vielen Dank für eure ganze Hilfe, ihr bringt mich hier sehr viel weiter mit meinem Überlegen wie ich das angehen soll^^

Also soweit komme ich mit JavaDB und SQL klar. Wozu benötige ich jetzt Hibernate?
 

LadyMilka

Aktives Mitglied
Hibernate brauchst du nicht unbedingt, es ermöglicht bspw. den einfachen Wechsel von einem Datenbanksystem auf ein anderes.

Es kann auch ein Performancegewinn sein, dass hängt aber immer von der jeweiligen Anwendung ab.
 

ARadauer

Top Contributor
Also wie ich raus gehört habe, ist das deine erste Datenbank Anwendung. Da würde ich auf jeden Fall noch ohne Hibernate arbeiten. Hibernate soll zwar die Arbeit mit jdbc vereinfachen, da das Stanard Buch aber über 800 Seiten hat bezweiflich ich ob es für Anfänger hilfreich ist ;-)

Mal 1-2 Projekte rein mit jdbc und dann kann man sich gerne mal Hibernate zu Gemüte führen wenn man weiß was unter der Haube so geschiet...
 

Raziell

Bekanntes Mitglied
Hi,

fang doch einfach erstmal folgendermaßen an:

  1. MySQL-DB mit Tabellen und Feldern erstellen (z.B. mit Hilfe von xampp und phpmyadmin)
  2. Mit Hilfe von Java eine DB-Verbindung herstellen (Gibts massig Tuts im inet)
  3. Ein bisschen mit SQL auf der Datenbak austoben
  4. GUI-erstellen (Beispielsweise Swing oder was auch immer du möchtest)
  5. Logik programmieren
  6. ...

Gruß
 

petterapamm

Aktives Mitglied
Okay, vielen Dank für die schnellen und klaren Antworten, dann werde ich Hibernate erstmal nicht benutzen!

Und noch eine Frage:
Mir steht keine Serverhardware zur Verfügung, auf dem die Datenbank läuft. Trotzdem wird mit mehreren Benutzern gleichzeitig auf die Datenbank zugegriffen wodurch Inkonsistenzen vorkommen können. Muss man nun einen Applicationserver schreiben oder gibt es auch einen Weg diese zu verhindern obwohl man nur mit Desktopanwendungen auf die DB zugreift?
(Denn mit Applicationservern hab ich auch noch nie gearbeitet; dies müsste ich auch erst noch lernen und das ganze erscheint mir etwas sehr komplex.)

Wenn nein, kennt jemand ein Tutorial in dem Applicationserver einfach gehalten und verständlich erklärt werden? Englisch ist auf jeden Fall auch ok.
 

ARadauer

Top Contributor
was meinst du mit Inkonsistenzen? Das A etwas lädt, B etwas lädt, A speichert, B speichert und B die änderungen von A überschrieben hat?
Ich sehe nicht wie dir dein App Server das verhindern kann. Das kannst du auch mit einer Desktop Anwendung verhindern indem du beim speichern überprüft ob die letzen Änderung deiner geladenen Entspricht und bei bedarf dann eine warunung ausgeben...


Mir steht keine Serverhardware zur Verfügung, auf dem die Datenbank läuft.
naja irgend einen Rechner musst du aber benutzen um die Datenbank laufen zu lassen... muss ja kein "High End Server" sein.

Wenn nein, kennt jemand ein Tutorial in dem Applicationserver einfach gehalten und verständlich erklärt werden? Englisch ist auf jeden Fall auch ok.
neh sorry... thats a serious business, da kommst ohne englisch nicht weit....
 
M

Marcinek

Gast
Nein, man braucht keinen Server.

Wie wäre es, wenn man zunächst googelt? - Bestimmt gibt es mehr Leute, die mit Multi User Systemen arbeiten ;)
 

petterapamm

Aktives Mitglied
Ich habe gerade bemerkt, dass es sein könnte das ich zumindest um einen Applicationserver nicht herumkommen werde. Kann einer ein Stichwort nennen was ich googlen kann oder einen Link zu einem Tutorial schicken wo ich mich informieren kann. Ich wollte jetzt aber nicht die gesamte Bandbreite an Möglichkeiten eines Applicationservers ausschöpfen, es wäre also nett, wenn jemand eine Idee hat, wo ich Informationen bekommen kann, die sich eher vielleich etwas spezifischer auf mein Datenbankprojekt beziehen.
Das Problem was ich nämlich entdeckt habe ist folgendes:
Liegen die Bilder auf einer Festplatte irgendwo im Netzwerk, muss der Benutzer mit seinem PC wenn er eine Vorschau anzeigen will, das gesamte Bild runterladen und das kann bei einer Vorschau von 100 Bildern einige Zeit dauern. Die Bilder müssten auf der Festplatte in dem Moment auf die Größe verkleinert werden wie sie in der Vorschau gebraucht werden, werden - wenn sie dann nur noch ein paar kilobyte groß sind, sollte die Datenmenge übertragbar sein.
Und wenn man dann schon einen Server programmieren muss, kann er sich auch gleich noch um die Datenverwaltung kümmern.
Danke für die Hilfe
petterapamm
 

mariusbopp

Bekanntes Mitglied
okay also ich hab es so gemacht mit meiner db
-MySql
-xampp
-PhpMyAdmin

über die config von MySql kannst du einstellen ob die db von mehreren usern verwendet wird und wie sie diese erreichen können!

musst ma im netz genaueres drüber lesen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Java die richtige Programmiersprache für mein Projekt? Java Basics - Anfänger-Themen 1
R Ist Java das Richtige für mich? Java Basics - Anfänger-Themen 4
I Richtige Java-Version finden? Java Basics - Anfänger-Themen 17
H Ist Java überhaupt die richtige Sprache für das Projekt? Java Basics - Anfänger-Themen 8
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
X Ist Java für mich das richtige? Java Basics - Anfänger-Themen 10
B Ist Java das richtige für mich? Java Basics - Anfänger-Themen 12
W Java das richtige? Java Basics - Anfänger-Themen 9
S Java Games Programieren. Der richtige Weg dorthin. Java Basics - Anfänger-Themen 4
M Java die richtige Sprache? Java Basics - Anfänger-Themen 4
W Java Web Start das richtige? Java Basics - Anfänger-Themen 11
B Ist Java das richtige für folgendes Programm! Java Basics - Anfänger-Themen 2
A Java wirklich das richtige? Java Basics - Anfänger-Themen 20
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben