# Java Swing und JPA (toplink)



## mike2707 (9. Mrz 2009)

Hallo,

ich arbeite mit der aktuellen Netbeans Version 6.5.
Als Provider setze ich Toplink ein.

Ich bin gerade dabei mich mit JPA (Java Persistence API) einzuarbeiten.

Dabei habe ich einige offene Fragen:

Um die Verbindung zur Datenbank, in meinem Fall den MSSQL 2005 Express Edition, benötige ich die Datei persistence.xml.
In dieser Datei werden ja im XML-Format die Zugangsdaten für die DB festgelegt.

Nun möchte ich ein Dialog entwickeln, indem der Benutzer seine Zugangsdaten zur DB einzugeben.

Wie verwirkliche ich das mit JPA?
Sobald mein Programm compiliert ist, gibt es die persistence.xml nicht mehr.

Wie kann ich erreichen, dass der Benutzer extern seine Verbindungsdaten zur DB eingeben kann?

Danke und Gruß
Mike


----------



## mike2707 (9. Mrz 2009)

OK. Ich habe gerade herausgefunden, dass ich in einem compilierten Programm die Felder der persistence.xml auslesen kann. So kann ich diese wahrscheinlich auch ändern.

Jetzt mal eine andere Fragen.
Ich versuche die persistence.xml zu lesen, bekomme aber folgende Fehlermeldung.

SCHWERWIEGEND: null
java.util.InvalidPropertiesFormatException: org.xml.sax.SAXParseException: Document root element "persistence", must match DOCTYPE root "null".

Ich habe an der persistence.xml nichts verändert. Diese wurde von Netbeans so erzeugt.

Die XML-VAlidierung zeigt mir keine Fehler an.

Der Code aus der persistence.xml


```
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="XXX:1111;databaseName=XXXPU" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <class>wawi_statistik_databinding.Tkunde</class>
    <properties>
      <property name="toplink.jdbc.user" value="XX"/>
      <property name="toplink.jdbc.password" value="XXX"/>
      <property name="toplink.jdbc.url" value="jdbc:sqlserver://XXX:1111;databaseName=DB"/>
      <property name="toplink.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    </properties>
  </persistence-unit>
</persistence>
```

Gruß
Mike


----------



## byte (9. Mrz 2009)

Kenne mich mit Toplink nicht aus, aber bei Hibernate ist es so, dass ein Configuration Objekt aus der XML-Datei erzeugt wird. Dieses Configuration Objekt kann man aber auch programmatisch anlegen oder verändern. Auf diese Weise käme man also auch gänzlich ohne XML-Konfig aus.


----------



## jannsworld (22. Mai 2009)

Hallo Mike
dein Fehler schliesst darauf das du den Namespace bei der Abfrage vergessen hast.
ohne Quellcode ist es aber schwierig.

Konntest Du Dein Problem bereits lösen?
Falls ja währe ich an der Lösung interessiert.

Gruss
Jannsworld


----------

