2017-07-18 5 views
0

I'am emballage mon application web java dans un fichier zip contenant toutes les dépendances et d'autres choses .. en utilisant le plugin de montage Maven, et je l'ai écrit un script batch pour déployer la guerre et exécutez-le sans ouvrir eclipse ...Externaliser hibernate.cfg.xml de la guerre maven

le problème ici est que je veux exécuter ce fichier batch pour d'autres bases de données dans d'autres ordinateurs, ici j'ai besoin de votre aide pour me dire s'il y a un moyen d'externaliser le hibernate.cfg .xml pour configurer directement les bases de données auxquelles mon application sera liée.

Merci à l'avance

Répondre

0

J'ai trouvé que je dois spécifier les propriétés de connexion (nom d'utilisateur , mot de passe, connection.url, dialect ...) dans le hibernate.properties. Et le mappage de classe doit rester dans le fichier hibernate.cfg.xml. Et en les plaçant tous les deux au resources, Hibernate les localisera tous les deux et extraira ce dont il a besoin: D

0

vous devez configurer le fichier property pour l'extérioriser hibernate.cfg.xml. Créez hibernate.properties dans le chemin de classe et définissez la variable et la valeur pour la configuration d'Hibernate. vous pouvez consulter un exemple de code ci-dessous pour elle:

hibernate.cfg.xml:

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="hibernateProperties"> 
     <map> 
      <entry key="connection.driver_class" value="${hibernate.connection.driver_class}" /> 
      <entry key="connection.username" value="${hibernate.connection.username}" /> 
      <entry key="connection.password" value="${hibernate.connection.password}" /> 
      <entry key="transaction.factory_class" value="org.hibernate.transaction.JDBCTransactionFactory" /> 
     </map> 
    <property> 
</bean> 

hibernate.properties:

hibernate.connection.driver_class = com.mysql.jdbc.Driver 
hibernate.connection.url = jdbc:mysql://localhost:3306/test 
hibernate.connection.username = root 
hibernate.connection.password = root 
hibernate.dialect = org.hibernate.dialect.MySQLDialect 
hibernate.current_session_context_class=thread 
+0

Existe-t-il un moyen de le faire sans inclure le ressort? ou c'est obligatoire? – ZiOS

+0

non non .. il n'est pas obligatoire de l'utiliser. et pour une configuration correcte, vous pouvez consulter ce lien: https: //stackoverflow.com/questions/45173127/externalize-hibernate-cfg-xml-from-war-maven/45173364? noredirect = 1 # comment77316235_45173364, dans ce lien, vous pouvez obtenir konw sur la configuration. ans utilise cette configuration dans le fichier de propriétés. – Sharma