# persistence.xml für MySQL - Verbindung



## gast (11. Dez 2008)

Hallo,

Die persistence.xml war vorher für Oracle ausgegelgt, und soll jetzt abgeändert werden, damit man sich mit einer MySQL -Datenbank verbinden kann.

Hab das jetzt mal so probiert, doch funktioniert irgendwie nicht:


```
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">

	<persistence-unit name="<name>"
		transaction-type="RESOURCE_LOCAL">		
		<provider>
			org.apache.openjpa.persistence.PersistenceProviderImpl
		</provider>

		<class>....</class>
		<class>....</class>	
		<properties>
			<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
			<property name="openjpa.ConnectionURL" value="jdbc:mysql://<param1>:<param2>/<param3>"/>
			<property name="openjpa.ConnectionUserName" value="<user>"/>
			<property name="openjpa.ConnectionPassword" value="<passw>"/>
			<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />			
		</properties>
	</persistence-unit>
</persistence>
```

Hab nun neben der persistence.xml noch eine Datei orm.xml.
Muss ich da auch noch was ändern?

Und welche Klassen muss man eigentlich da bei <class>...</class> angeben? Hab da zwar was drinstehen, aber
weiß nicht genau wieso.



Danke für die Hilfe
mfg[/code]


----------



## The_S (11. Dez 2008)

Mal schnell aus meiner hibernate MySQL persistence.xml kopiert:


```
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
			<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/SQLPocket</property>
			<property name="hibernate.connection.username">root</property>
			<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
```

Evtl. hilfts was  .

[edit] Bei <class> muss die Klasse rein, die gemapped werden soll.


----------



## Guest (11. Dez 2008)

Hab jetzt mal mit deinen Einstellungen probiert. Da gehts aber leider auch nicht.

Vielleicht hilft es, wenn ich mal die Fehler angeben, die ich mit meinen "alten" Einstellungen bekomme:



```
ErrorThere were errors initializing your configuration: <openjpa-1.0.2-r420667:627158 fatal store error> org.apache.openjpa.util.StoreException: com.mysql.jdbc.Driver
	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:123)
	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:803)
	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:708)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:289)
	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1463)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:648)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:171)
	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
	at at.xtention.sample.logic.BookQuery.getAllBooks(BookQuery.java:19)
	at at.xtention.sample.controller.ShowBooks.handleRequest(ShowBooks.java:26)
	at at.xtention.sample.controller.ShowBooks.doGet(ShowBooks.java:44)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:85)
	... 31 more
```

Vielleicht kann man damit ja auf den Fehler schließen
Danke[/code]


----------



## The_S (11. Dez 2008)

Ja, der sagt, dass der MySQL-Treiber nicht gefunden wurde. Hast du den in den Classpath mit aufgenommen?


----------



## Guest (11. Dez 2008)

Hab jetzt mal mit deinen Einstellungen probiert. Da gehts aber leider auch nicht.

Vielleicht hilft es, wenn ich mal die Fehler angeben, die ich mit meinen "alten" Einstellungen bekomme:



```
ErrorThere were errors initializing your configuration: <openjpa-1.0.2-r420667:627158 fatal store error> org.apache.openjpa.util.StoreException: com.mysql.jdbc.Driver
	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:123)
	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:803)
	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:708)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:289)
	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1463)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:648)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:171)
	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
	
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:85)
	... 31 more
```

Schätze mal, dass das die wichtigen Fehlermeldungen sind
Danke[/code]


----------



## HoaX (11. Dez 2008)

> Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver



Treiber nicht im Classpath - wurde ja schon gesagt ...


----------



## Guest (11. Dez 2008)

Ups   
Vielen Dank, funktioniert jetzt


----------

