JPA Datenbanksettings ohne persistence.xml

Status
Nicht offen für weitere Antworten.

peez

Bekanntes Mitglied
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:
Java:
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:
Code:
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? ;-)
 
Zuletzt bearbeitet von einem Moderator:
so hatte es bei mir hingehaun:
Java:
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();
 
Falls da mal wieder jemand übers Suchen drüberstolpert:

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

Also die Property-Map beim Erzeugen der Factory als zweiten Parameter übergeben.
 
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
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben