2010-12-31 9 views
5

Ich habe eine Derby-Datenbank, die zusammen mit meinem Webapp WEB-INF/classes/MYDBJDBC-Verbindungs ​​URL für Embedded-Derby in einer Webapp

Was so zu verbinden, um meine jdbc.connection url sollte, dass ich kann, eingesetzt wird in die Datenbank schreiben?

Ich versuche

jdbc:derby:myDb; 

und die Datenbank nicht finden kann. Ich muss in der Lage sein, die Datenbank zu ändern. Wenn ich Classpath: myDb, es findet es, aber es ist leider nur für die Derby-Dokumente gelesen.

Antwort

4

i löste es durch meine jdbc Verbindung URL zur Laufzeit Einstellung und Verwendung:

 StringBuilder derbyUrl = new StringBuilder("jdbc:derby:"); 
     derbyUrl.append(servletContext.getRealPath("/")); 
     derbyUrl.append("/WEB-INF/classes/myDb;"); 
     dataSource.setUrl(derbyUrl.toString()); 
+0

+1: Ich habe sehr ähnliche Dinge selbst zu tun hatte (meine Lösung war eine benutzerdefinierte Frühling Factory-Klasse die Rewrite tat, aber das ist konzeptionell fast identisch und ich habe noch keine wesentlich besseren Ideen gesehen. Wohlgemerkt, Sie könnten auch argumentieren, dass in einer Produktionsbereitstellung die Webapp-Dateien überhaupt nicht beschreibbar sein sollten, sodass stattdessen eine externe Datenbankverbindung erforderlich ist ... –