MySQLDataSource Verbindung zu entferntem Server
lima-city → Forum → Programmiersprachen → Java
anschauen
anwender
aufruf
datei
datenbank
entsprechenden informationen
feststelle
http
information
methode
objekt
persistenz
programm
ressource
server
testen
treiber
url
verbindung
verzichten
-
Ich schreibe momentan ein Programm, welches später auf einem Server eingesetzt werden wird. Es verwendet eine MySQL Datenbank, zu der es mithilfe eines MysqlConnectionPoolDataSource Objektes eine Verbindung aufbaut. Nun teste ich dieses Programm nur lokal und dementsprechend nur mit einer lokalen Datenbank. Bevor ich also getPooledConnection() auf diesem Objekt aufrufe, setze ich den "ServerName" (setServerName()) auf localhost. Meine Frage ist nun, inwiefern das bei einer Datenbank funktionieren wird, die nicht "localhost" ist. Also der Anwender kann die Datenbankinformationen (Username, Passwort, DBName, DBPort und URL) in einer Datei hinterlegen und wie verwende ich nun die von ihm angegebene URL? Verwirrt hat mich, dass das DataSource Objekt nicht nur besagte setServerName Methode sondern auch eine setUrl und eine setURL Methode zur Verfügung stellt. Die Verbindung kann aber nicht aufgebaut werden, wenn man diese Methoden mit localhost füttert.
Verwendet man einfach den DriverManager gibt man ja eine ganze URL an die etwa so aussieht:
jdbc:mysql://localhost:3306/DBName
Diese müsste in meinem Fall umständlich aus den Benutzereingaben zusammengesetzt werden, und zudem möchte ich nur ungern auf das Connection Pooling verzichten. Zusammengefasst: Wie verarbeite ich die Serveradresse, die nicht localhost ist, mithilfe eines DataSource Objektes? Vielleicht ist ServerName ja das richtige, aber ich kann es nicht testen und möchte ungern erst später feststellen, dass es so nicht funktioniert.
Vielen Dank -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
ich kenne jetzt zwar nicht MysqlConnectionPoolDataSource, aber warum kannst du es nicht testen?
lima-city ist der einzige mir bekannte Freehoster der auch Verbindungen auf die MySQL-Datenbanken von außerhalb zulässt.
Also versuch mal statt localhost, mysql.lima-city.de.
Musst näturlich die entsprechende Datenbankstruktur hier auch aufbauen bzw. Dankenbank ersteigern ...;)
http://www.lima-city.de/databases -
Achja wenn man den Wald vor lauter Bäumen nicht sieht :D .
Also falls es später irgendwen interessiert: Die setServerName Methode mit etwas anderem als localhost wie z.B. mysql.lima-city.de zu füttern funktioniert tadellos.
Vielen Dank nochmal. -
Hallo Hurricane,
du solltest dir vielleicht mal das JPA Framework anschauen. Dies beinhaltet alle benötigten Komponenten für die Persistenz deiner Daten und die Übertragung der Datenbankeinträge in Objekte unteranderem auch den Entity-Manager). Gewöhnlich stehen dann alle benötigten Informationen für Verbindung, Treiber, ... deiner Datenbank in der src/META-INF/persistence.xml-Datei. Da deine Software aber auf einem Application-Server laufen soll, würde ich vorschlagen, dass du dort in den Einstellungen und Ressourcen die entsprechenden Informationen für deine Anwendung bereitstellst, da Änderungen dadurch komfortabler durchzuführen sind.
Hier ist ein kleines Tutorial über JPA: http://www.vogella.de/articles/JavaPersistenceAPI/article.html
--
Grüße,
spuglisi
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage