# JPA persistence.xml mit EXTERNER Config Datei



## Frithjof (29. Jun 2015)

Hallo,
mein Programm basiert auf JPA und einer MySQL Datenbank.
Es ist mein erstes Projekt und mittlerweile doch sehr sehr groß geworden, rund 120 Arbeitsstunden.
In meiner Testumgebung kenne ich ja die Datenbank und kann die Daten direct in die XML, die in das .jar File letztendlich eingebunden wird, manuell eintragen.
Der Nutzer wird allerdings eine eigene Datenbank haben und einen eigenen Server.
Mein Problem:
Der Nutzer muss die Datenbank installieren auf seinen eigenen Server. Den kenne ich nicht muss ihn aber Adressierbar machen.

Deswegen muss ich die Verbindungsdaten DAUERHAFT irgendwo speichern das mein Programm mit diesen Daten arbeiten kann.

ich dachte an eine Konfig Datei im selben Verzeichnis wie die .jar Datei.

Was muss ich tun damit mein Programm, das ca 100-300 Datenbank Zugriffe macht, und im Entity Manager der immer die programm.pu aufruft, damit die persistance.xml die von Netbeans erstellt wurde, so ändert das es die Konfig Daten einsetzt die aus einer externen Datei kommen.

Ich denke momentan so: 
Die Persistance.xml enthält Tags die die Daten enthalten.
Die Persistance ist so aufgebaut:

```
<properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/[COLOR=#ff0000]DBNAME[/COLOR]?zeroDateTimeBehavior=convertToNull"/>
      <property name="javax.persistence.jdbc.user" value="[COLOR=#ff0000]benutzername[/COLOR]"/>
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
      <property name="javax.persistence.jdbc.password" value="[COLOR=#ff0000]geheim[/COLOR]"/>
      <property name="javax.persistence.schema-generation.database.action" value="create"/>
    </properties>
```
Diese Datei ist innerhalb der .jar. (Rot Markiertes muss angepasst werden)

Wie könnte ich Daten aus einer Konfig Datei die beispielsweise so wie unten gelistet aussehen könnte einlesen und beim Programmstart die vorgegebene xml Datei ändern? 
Ich lerne mit diesem Projekt die Arbeit mit JPA es wär schön anfängerfreundlich es erklärt zu bekommen. 
(Da das bei jedem start passiert würde das das Problem lösen. - Der Nutzer muss eben eine Konfig Datei anlegen)
Konfig.cfg
Inhalt:
DBHoast.de
DatenBankName
Benutzername
geheimesPasswort
Port
--ende--​
Ich hoffe jemand hat lust mir da unter die Arme zu greifen.


----------

