# JPA Datenbanksettings ohne persistence.xml



## peez (17. Nov 2009)

Aah als ich mich ins JPA Thema eingearbeitet habe, habe ich irgendwo gesehen, dass man JPA auch per Java-Code konfigurieren kann, d.h. vor allem die Datenbanksettings.
Da ich eine J2SE Anwendung habe, möchte ich die Datenbankdaten nicht in die XML schreiben, sondern verschlüsselt per Programm irgendwo auf der Festplatte abspeichern und diese Daten dann erst zur Laufzeit festlegen.

Habe es schon so versucht:

```
HashMap<String, String> props = new HashMap<String, String>();
props.put("eclipselink.jdbc.driver", dbDriver);
props.put("eclipselink.jdbc.url", dbUrl);
props.put("eclipselink.jdbc.user", dbUser);
props.put("eclipselink.jdbc.password", dbPassword);
props.put("eclipselink.logging.level", loggingLevel);

emf = Persistence.createEntityManagerFactory("meinUnitname_aus_xml");	
em = emf.createEntityManager(props);
```
Leider werden weiter die xml daten verwendet bzw. wenn die Werte ganz aus der xml draußen sind, bekomme ich eine Exception die sagt, die entspr. Daten seien null:

```
Exception [EclipseLink-4021] (Eclipse Persistence Services - 1.1.2.v20090612-r4475): 
org.eclipse.persistence.exceptions.DatabaseException

Exception Description: Unable to acquire a connection from driver [null], user [null] and URL [null].  
Verify that you have set the expected driver class and URL.  Check your login, persistence.xml 
or sessions.xml resource.  The jdbc.driver property should be set to a class that is compatible 
with your database platform
```

Wie geht das richtig? ;-)


----------



## Spinner0185 (17. Nov 2009)

so hatte es bei mir hingehaun:

```
Properties test = new Properties();
		test.setProperty("datanucleus.ConnectionDriverName", "com.mysql.jdbc.Driver");
		test.setProperty("datanucleus.ConnectionURL", "");
		test.setProperty("datanucleus.ConnectionUserName", "");
		test.setProperty("datanucleus.ConnectionPassword", "");
		PersistenceManagerFactory jdopmf = JDOPersistenceManagerFactory.getPersistenceManagerFactory(test);
		PersistenceManager pm = jdopmf.getPersistenceManager();
```


----------



## Thogo (16. Mrz 2010)

Falls da mal wieder jemand übers Suchen drüberstolpert:


```
emf = Persistence.createEntityManagerFactory("meinUnitname_aus_xml", probs);
```

Also die Property-Map beim Erzeugen der Factory als zweiten Parameter übergeben.


----------



## endnic (8. Dez 2010)

Hallo,

ich klinke mich hier mal ein...
Meine Frage:

Ist es denn auch möglich die persistence.xml komplett weg zu lassen und EclipseLink nur via Quellcode zu konfigurieren? Wenn ja, was muss ich zu dem o. g. Bsp. noch hinzufügen?

Danke


----------

