2009-05-19 2 views
0

Ist es möglich, Hibernate für die Verwendung einer javax.sql.DataSource-Instanz zu konfigurieren?Hibernate mit einer Instanz von javax.sql.DataSource

Meine Anwendung hat bereits eine Instanz von javax.sql.DataSource und ich würde lieber nicht die Datenbank-URL, Benutzer, Passwort, Treiber usw. nur für Hibernate neu konfigurieren.

Antwort

3

Wenn die Datenquelle über JNDI verfügbar ist, müssen Sie nur die Eigenschaft hibernate.connection.datasource der Konfiguration festlegen - die Antwort von mtpettyp zeigt dies.

Wenn Sie sich nicht in einer Umgebung befinden, in der Ihre Datenquellen aus JNDI stammen, stellen Sie Ihre eigene ConnectionProvider-Implementierung bereit und übergeben Sie sie vor dem Erstellen der Sitzungsfactory an das Settings-Objekt oder geben Sie ihren Klassennamen in der Datei hibernate.connection an .provider_class-Eigenschaft Wenn Sie den Einstellungen eine Instanz bereitstellen, können Sie wahrscheinlich den standardmäßigen DatasourceConnectionProvider instanziieren und ihm Ihre DataSource geben.

3

In Ihrem hibernate.cfg.xml:

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
      "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
      "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
    <session-factory> 
     <property name="dialect"> 
      org.hibernate.dialect.MySQLDialect 
     </property>  
     <property name="connection.datasource">SampleDS</property>   
    </session-factory> 

</hibernate-configuration> 
1

Wenn Sie Feder Initialisierung verwenden und eine Feder Sitzung Fabrik Bohne Sie einfach in der Datenquelle wie diese

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    ... 
</bean> 

passieren kann, wo Die DataSource-Referenz ist an anderer Stelle definiert.

Verwandte Themen