IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

[Eclipse-Hibernate] fichier cfg et paramètres de connexion


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut [Eclipse-Hibernate] fichier cfg et paramètres de connexion
    Bonjour,
    J'ai un projet de développement plugin (RCP) dans Eclipse et nous utilisons Hibernate pour la persistance des données.

    Tout fonctionne bien, mais le problème est que j'aimerais que l'utilisateur puisse modifier les informations de connexion à la base de donnée.

    Une fois l'export en binary fait avec Eclipse, le fichier hibernate.cfg.xml se trouve dans un jar, donc inexploitable.

    J'ai un fichier dit "préférences" à la racine du logiciel (configuration.properties) que j'utilise pour sauvegarder d'autres paramètres du logiciel et j'aimerais bien pouvoir y stocker également les paramètres de connexion à la base (adresse, port, login et mot de passe)

    Comment dois-je procéder pour que Hibernate aille chercher les paramètres de configuration dans mon fichier "configuration.properties" ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Tu peux surcharger les valeurs de ton hibernate.cfg.xml par programmation.
    Il suffit de lire les infos dans ton fichier properties et de setter les bonnes propriétés.
    C'est expliqué dans la doc.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut
    Salut,
    Merci pour ta réponse.
    J'ai donc le code suivant dans mon fichier HibernateUtil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    public class HibernateUtil
    {
     
    	private static final SessionFactory sessionFactory;
     
     
    	static
    	{
    		try
    		{
     
    			String filePath = new File("configurationhibernate").getAbsolutePath();
    			File file = new File(filePath);		
    			Configuration cfg = new Configuration().configure(file);
    			// Crée la SessionFactory
    			sessionFactory = new Configuration().configure().buildSessionFactory();
    		}
    		catch (HibernateException ex)
    		{
    			throw new RuntimeException("Problème de configuration : " + ex.getMessage(), ex);
    		}
    	}
     
    	public static final ThreadLocal session = new ThreadLocal();
     
    	/**
             * Méthode d'accès à la session
             * 
             * @return Retourne la session courante
             * @throws HibernateException
             */
    	public static Session currentSession() throws HibernateException
    	{
    		Session s = (Session) session.get();
    		// Ouvre une nouvelle Session, si ce Thread n'en a aucune
    		if (s == null)
    		{
    			s = sessionFactory.openSession();
    			session.set(s);
    		}
    		return s;
    	}
     
    	/**
             * Méthode de fermeture de la session
             * 
             * @throws HibernateException
             */
    	public static void closeSession() throws HibernateException
    	{
    		Session s = (Session) session.get();
    		session.set(null);
    		if (s != null)
    			s.close();
    	}
    }
    Ensuite j'ai crée un fichier configurationhibernate dans lequel j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Configuration cfg = new Configuration () 
    .addClass(org.hibernate.auction.Item.class)
    .addClass(org.hibernate.auction.Bid.class)
    .setProperty("hibernate.connection.driver_class", "org.postgresql.Driver") 
    .setProperty("hibernate.connection.password", "fdsa") 
    .setProperty("hibernate.connection.url", "jdbc:postgresql://localhost/Medclipse") 
    .setProperty("hibernate.connection.username", "postgres")
    Je crois que je suis près du but, mais j'obtiens cette erreur au lancement:
    Could not parse configuration: /Users/xxx/Desktop/binary/eclipse/configurationhibernate

    Je traduis ceci par le fait qu'il n'arrive pas à lire mon fichier configuration.
    Une idée de mon erreur ?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Configuration cfg = new Configuration ()
    .addClass(org.hibernate.auction.Item.class)
    .addClass(org.hibernate.auction.Bid.class)
    .setProperty("hibernate.connection.driver_class", "org.postgresql.Driver")
    .setProperty("hibernate.connection.password", "fdsa")
    .setProperty("hibernate.connection.url", "jdbc:postgresql://localhost/Medclipse")
    .setProperty("hibernate.connection.username", "postgres")
    Tu dois mettre tout ça dans ta classe java et non pas dans un fichier de configuration.

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    par principe les fichiers de configurations sont statiques à une connexion, si par exemple tu utilises un server différent pour loadé tes données et y accéder tu serais mal barré ...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut
    Hello,
    Suis-je bête.... Cela fonctionne maintenant !
    Merci beaucoup pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class HibernateUtil
    {
     
    	private static final SessionFactory sessionFactory;
     
    	static
    	{
    		try
    		{
    			/*String filePath = new File("hibernate.cfg.xml").getAbsolutePath();
    			File file = new File(filePath);		
    			Configuration cfg = new Configuration().configure(file);*/
    			// Crée la SessionFactory
    			Configuration conf = new Configuration().configure();
    			conf.setProperty("hibernate.connection.password", ch.medclipse.application.agenda.Configuration.PASSWORD);
    			conf.setProperty("hibernate.connection.url", ch.medclipse.application.agenda.Configuration.URL);
    			conf.setProperty("hibernate.connection.username", ch.medclipse.application.agenda.Configuration.USER);
    			sessionFactory = conf.buildSessionFactory();
    		}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SGBD] Connexion de Eclipse (Hibernate) vers SQL Server
    Par Michel38 dans le forum Hibernate
    Réponses: 4
    Dernier message: 11/03/2012, 16h39
  2. Réponses: 1
    Dernier message: 28/03/2011, 14h05
  3. Paramètres de connexion à une base de données dans un fichier xml
    Par Davesique dans le forum Persistance des données
    Réponses: 1
    Dernier message: 17/11/2010, 22h09
  4. Eclipse-hibernate-Problème de connexion
    Par matech dans le forum Hibernate
    Réponses: 9
    Dernier message: 14/08/2007, 11h36
  5. console hibernate dans eclipse et fichier .hbm.xml
    Par BBruno dans le forum Hibernate
    Réponses: 2
    Dernier message: 31/08/2006, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo