MySQL Programm mit Datenbank anbindung

hans-sonny

Bekanntes Mitglied
Hi leute, ich möchte gerne ein programm schreiben welches auf eine datenbank zugreift ...

zunächst möchte ich die datenbank lokal mit einem apache server laufen lassen später soll die datenbank aber auf einen server ausgelagert werden

gibt es hierfür tutorials? oder ähnliches?

kurze infos

wird ein programm welches daten verwalten soll ähnlich einer mitarbeiter datenbank ...
 
Eine Datenbank auf ´nem Apache laufen lassen? Das geht gar nicht, die Datenbank läuft immer über einen Datenbankserver, der hat mit deinem Webserver (z.B. Apache) nix zu tun. Was du meinst, ist wahrscheinlich die Anwendung, die auf die Datenbank zugreift, die kann natürlich über einen Webserver gehostet werden.

Wenn du SQL mit Java lernen willst, kann ich dir das dtsch. Tutorial empfehlen: SQL mit Java
für MySQL musst du mal bei MySQL :: Using MySQL With Java nachgucken, ist aber auf englisch...
 
Zuletzt bearbeitet:
klar kann man apache und mysql local auf einem Rechner laufen lassen
jedenfalls zunächst zum entwickeln, wie er ja selbst schreibt,

Da bietet sich apache friends - xampp an.

Wenn es eine (java) Webanwendung werden soll bräuchtest du noch einen Servletcontainer z.B Tomcat.
 
Zuletzt bearbeitet:
Ich hab nicht behauptet, dass man die Anwendungen nicht auf einem Rechner laufen lassen kann, sondern, dass man sie nicht auf einem Server laufen lassen kann. Es gilt zu unterscheiden zwischen Webserver (z:b. Apache Webserver) und Datenbankserver (z.B. MySQL-Databaseserver).

Wie bereits erwähnt, müsstest du, falls du mit JAVA an die Datenbak ranwillst, einen Servlet-Container (Tomcat) verwenden. Besorg dir den Datenbanktreiber von MySQL und kopier ihn in deine Web-Anwendung.
 
es soll zunächst mal eine locale anwendung sein die local läuft mit einer localen datenbank mit mysql

nun möchte ich mit meiner normalen desktop anwendung auf die lokale mysql datenbank zugreifen.

wenn dies alles klappt möchte ich die anwendung erst um eine webschnittstelle erweitern und z.B. eine android app mit abgespecktum umfang ab zugriff auf die datenbank proggen


aber primär geht es erst mal um die locale geschichte mysql server local installiern ist kein thema ... ne gui zu programmieren zunächst auch mal nicht nur wie kann ich mit meiner gui auf die daten aus meiner datenbank zugreifen da brauche ich tomcat?
 
Mit JDBC könntest du zum Beispiel auf die Datenbank zugreifen. Musst dir dafür einen JDBC-Treiber für MySQL besorgen und einbinden. Dann kannst du zur Datenbank verbinden usw.
 
Du solltest schon jetzt bei der Entwicklung darauf achten, nicht direkt per JDBC mit MySQL zu kommunizieren auch wenn derzeit noch alles lokal ist. Denn später übers Netz direkt mit einer DB zu quatschen ist ein absolutes NoGo, da du die Zugangsdaten in deiner Anwendung hinterlegen müsstest.
Also solltest du jetzt schon einen Webservicelayer mitprogrammieren.

Die Frage ist aber auch, was genau du jetzt programmierst. Eine Desktopanwendung? oder doch schon einen Webanwendung?
 
ja es wird beides praktisch ich möchte das programm lokal als arbeitsplatz version installieren aber die daten dann auch online zur verfügung stellen
 
Klingt für mich eher noch nach ner fixen Idee als nach nem wirklichen Programmplan.

Ich rate dir, dich nochmal in ruhe mit dem, was du dort basteln willst zu beschäftigen, bis du wirklich genau weisst, was du alles benötigst.

Dann wie hier schon gepostet gleich reale Bedingungen schaffen auch zu Testzwecken.
Sprich:
wenn die Daten zentral für mehrere clients übers web zugänglich sein sollen, dann Webservicelayer!
danach kannste ja mal versuchen auf die DB zuzugreifen und dann kannste dich an die UIs machen.

Das schüttelt sich nicht einfach so aus dem Ärmel und schon garnicht ohne konkrete Vorstellungen.

Gruß Vanny
 
Lass mich mal zusammenfassen:

Du möchtest eine verteilte Anwendung mit einer Datenbank, welche später von unterschiedlichen Clients (zuerst eine lokale Desktop-Anwendung, dann eine Webapp und dann später evt. noch eine Android-App) angesprochen werden kann.


Wenn du etwas Zeit für die ganze Sache hast, würde ich dir - im Gegensatz zu den anderen - folgendes Vorgehen vorschlagen (einfach anfangs blindlings irgendwelche evt.ggf.u.U. notwendig werdenden WEBSERVICE-Layer einzubauen halte ich für nicht zielführend):

1. Programmiere die GUI der Desktop-Anwendung (wenn ich das richtig rausgelesen habe, kannst du da schon etwas)
2. Setze (bspw. mit XAMPP) eine lokale MySql-Datenbank auf
3. Binde diese Datenbank über JDBC an deine Desktop-Anwendung an

4. Setze einen Tomcat auf
5. Schreibe die GUI der Webanwendung
6. Beschäftige dich mit der Konfiguration von JNDI-Datasourcen im Tomcat (ist eigentlich auch schon Kür)
7. Implementiere den Datenbank-Zugriff über die JNDI-Datasource
8. Lese dich in Themen wie Socket-Programmierung/RMI/Jax-WS|-RS Webservice/JMS ein
9. Entscheide selbst welche der in 8 genannten Technlogien dir am geeignetesten erscheint
10. Stelle Desktop/Webapp auf diesen Zugriff um
11. Android kann kommen 😀


@HimBromBeere:

Er schrieb mit, nicht auf 😉. Er scheint also schon zu verstehen, dass Webserver und Datenbankserver auf dem gleichen physischen Server/Rechner laufen können (xampp macht ja nix anderes)
 
hmm das ist für das bisschen was mit dem programm gemacht werden soll eventuell bisschen übertrieben vermutlich mach ich ne gui mit zugriff jdbc auf meine mysql datenbank und exportiere die inhalte die ich online zur verfügung stellen möchte als pdf und schreib ein kleines script welche die auf einen webserver läd und mach dann ne normale webseite dazu mit login und so
 
1. Setze einen Tomcat auf
2. Schreibe die GUI der Webanwendung
3. Beschäftige dich mit der Konfiguration von JNDI-Datasourcen im Tomcat (ist eigentlich auch schon Kür)
4. Implementiere den Datenbank-Zugriff über die JNDI-Datasource
5. Lese dich in Themen wie [STRIKE]Socket-Programmierung/[/STRIKE]RMI/Jax-WS|-RS Webservice/JMS ein
6. Entscheide selbst welche der in 5 genannten Technlogien dir am geeignetesten erscheint
7. Programmiere die GUI der Desktop-Anwendung (wenn ich das richtig rausgelesen habe, kannst du da schon etwas)
8. Lasse diese mit deinen Webservices kommunizieren
9
. Android kann kommen 😀

FiXed

Warum sinnlos mit JDBC rumärgern. Zuerst die Webapp machen. Wenn diese gut umgesetzt ist entfällt vielleicht auch der Bedarf einer Desktop Anwendung.



hmm das ist für das bisschen was mit dem programm gemacht werden soll eventuell bisschen übertrieben vermutlich mach ich ne gui mit zugriff jdbc auf meine mysql datenbank und exportiere die inhalte die ich online zur verfügung stellen möchte als pdf und schreib ein kleines script welche die auf einen webserver läd und mach dann ne normale webseite dazu mit login und so
Nein nein nein, es gibt gründe (vorallem Security) warum man keinen JDBC Zugriff in einer Client Anwendung macht. Du willst deine Zugangsdaten zur DB nicht jedem zur verfügung stellen!
 
Zuletzt bearbeitet:
Nein nein nein, es gibt gründe (vorallem Security) warum man keinen JDBC Zugriff in einer Client Anwendung macht. Du willst deine Zugangsdaten zur DB nicht jedem zur verfügung stellen!

Sowie ich das ganze verstehe fehlen ihm noch total die Grundlagen für DB und JDBC usw.
Deshalb würde ich erstmal raten klein anzufangen und einfach mal ein 1-2 Tutorials durchmachen, um zu sehen wie das ganze funktioniert und ein bischen damit rumspielen.

Und wenn die ganzen Grundlagen mal funktionieren, kann man sich Gedanken wie das alles am besten in die Applikation kommt und welche Layer benötigt werden. Wenn er von Anfang die Layers schön sauber trennt sind sie auch wiederverwendbar.

Nach einer Weile wird man merken das Prepared Statement und das ResultSet jedes mal konvertieren keinen so großen Spaß macht und wird sich nach Alternativen umschauen (JPA).
 
FiXed

Warum sinnlos mit JDBC rumärgern. Zuerst die Webapp machen. Wenn diese gut umgesetzt ist entfällt vielleicht auch der Bedarf einer Desktop Anwendung.

Weil er offenbar noch sehr wenig Vorstellung davon hat, wie so etwas überhaupt funktioniert. Da jetzt gleich mit Technlogien zu arbeiten, die sowas abstrahieren/einsetzen (also quasi 2 Dinge gleichzeitig zu verstehen) halte ich für grundlegend falsch.
Wie soll er etwas gut umsetzen, was er zum Teil nicht versteht?


Einfach ohne differenziertes Hintergrundwissen einen Webservicelayer(am besten noch SOAP..) vorzuschlagen...
 
ja datenbanken hab ich erst nächstes semester ...

aber meine mum braucht software im geschäft die es so noch nicht gibt^^


die zugangsdaten zur db können ruhig bekannt sein es geht ja nur um das speichern der daten wer das programm öffnet hat so oder so zugriff auf alle daten
 
ja datenbanken hab ich erst nächstes semester ...

aber meine mum braucht software im geschäft die es so noch nicht gibt^^
Solche Individual Software kostet mal schnell Zeit und Geld, da kommt man schnell auf Jahre bzw. kann sich für das Geld einen Neuwagen kaufen, meinst du dass das jemand einfach so mal macht der gerade angefangen hat Informatik o.ä. zu studieren? 😉
 
ja datenbanken hab ich erst nächstes semester ...

aber meine mum braucht software im geschäft die es so noch nicht gibt^^


die zugangsdaten zur db können ruhig bekannt sein es geht ja nur um das speichern der daten wer das programm öffnet hat so oder so zugriff auf alle daten

Ja und was hindert dich daran, die Tutorials durchzumachen?
 
ja das bekomm ich schon hin

die zeit hindert mich daran hab nächste woche prüfungen desswegen nur gedanken austausch dann wirds konkreter wenn ich zeit hab^^
 
ja das bekomm ich schon hin

die zeit hindert mich daran hab nächste woche prüfungen desswegen nur gedanken austausch dann wirds konkreter wenn ich zeit hab^^

Gut Gedankenaustausch, benutz JEE6 (JBoss oder Glassfish) dann hast alles drin was du brauchst.
Machst ne Web applikation mit JSF2, BusinessLogikSchicht mit EJB3, Datenzugriff und Anbindung über JPA und hast ein DI Framework mit CDI 😉

So wieviel Wörter sagen dir nix? Darum lieber mit den Basics anfangen =)
 
Hallo,

ich habe ein Telefonbuch-Programm in Java geschrieben und möchte das die Daten nach Beendigung
des Programms dauerhaft gespeichert bleiben.

Ich brauch dazu keine große Datenbank.

Gibt es da eine db , die z.b. im JRE mit ausgeliefert wird, mit der ich das so machen kann?

Eine db-Installation wäre mir zu aufwendig.

mfg
 
Hallo,

ich habe ein Telefonbuch-Programm in Java geschrieben und möchte das die Daten nach Beendigung
des Programms dauerhaft gespeichert bleiben.

Ich brauch dazu keine große Datenbank.

Gibt es da eine db , die z.b. im JRE mit ausgeliefert wird, mit der ich das so machen kann?

Eine db-Installation wäre mir zu aufwendig.

mfg

Oder speicherst es in xml files oder ähnlichem...
 
Also wenn du eine Anwendung mit DB erstellen willst und das ganze als Desktop Version oder eben doch im Browser starten willst, dann musst du das Rad nicht neu erfinden. Auch wenn du mit DBs und JDBC nicht so erfahren bist, musst du nicht warten.

Ich kann dir empfehlen ein Framework zu verwenden, daß dir genau die technologischen Probleme löst. Klar kannst du jetzt auch beginnen alles selbst zu programmieren, sprich DB Anbindung mit JDBC, GUI - Tabelle und die Daten aus ResultSets befüllen usw. Wenn du dann aber 3-tier benötist, wird die Schichtentrennung echt Arbeit. Und klar brauchst du dann auch noch Insert, Update, Delete auf die Tabellen usw. Du kannst dich schon mal auf lehrreiche Jahre einstellen, wenn du damit neu beginnst.

Ich empfehle dir den Einsatz von JVx.
Warum?
Nicht weil es nix anderes gibt, aber um DB Anwendungen zu schreiben, mit kompletter GUI Anbindung und kompletter 3-tier Architektur, kommst du damit am einfachsten zum Ziel.

Du brauchst dich nicht um die DB Anbindung kümmern und auch wie die Daten in Tabellen kommen ist gelöst usw. Wenn du wenig Zeit hast und dennoch ohne das notwendige DB Wissen, eine DB Applikation erstellen willst, schau mal an.
 
Ich empfehle dir den Einsatz von JVx.
Warum?
Nicht weil es nix anderes gibt, aber um DB Anwendungen zu schreiben, mit kompletter GUI Anbindung und kompletter 3-tier Architektur, kommst du damit am einfachsten zum Ziel.
Die Tatsache dass es sich dabei um dein Produkt handelt spielt bestimmt auch eine wesentliche Rolle 😉

Hab nix gegen solche Tipps, aber dann sollte man schon dazusagen das es sich ein sein eigenes Produkt handelt.
 

Zurück
Oben