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 :

hibernate & chaîne de connexion


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de clio671
    Profil pro
    Développeur Web
    Inscrit en
    Février 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2007
    Messages : 203
    Par défaut hibernate & chaîne de connexion
    Bonjour,

    Actuellement, je dois créer une chaîne de connexion d'un projet java vers une base access par l'intermédiaire d'un fichier de configuration hibernate hibernate.cfg.xml, le problème est que je ne sais pas trop encore comment configurer cette chaîne de connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <property name="hibernate.connection.url">jdbc:msaccess:thin:planning@//localhost:8080/planning</property>
    voilà l'exemple sur lequel je me suis basé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <property name="hibernate.connection.url">jdbc:oracle:thin:planning@//db_serveur.tech.my_favourite_ssii.fr:1521/planning</property>
    Si quelqu'un pouvait me donner des pistes car là je sèche!

    a+

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482

  3. #3
    Membre éclairé
    Avatar de clio671
    Profil pro
    Développeur Web
    Inscrit en
    Février 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2007
    Messages : 203
    Par défaut
    Salut,

    Oui, j'entends bien mais il se trouve que le man qui était avant moi à créer une chaîne de connexion pour Oracle via un fichier de configuration hibernate.cfg.xml donc pour faire propre je n'ai pas envie de créer une chaîne de connexion via un fichier java, tu vois?

    Donc comme je l'ai dit avant le gars qui était avant moi sur le projet a utilisé une db qui était sur un serveur distant et qui était une base oracle moi maintenant je dois configurer le fichier hibernate.cfg.xml en clair créer une chaîne de connexion pour pouvoir me connecter à la db du projet qui est maintenant sur le moteur Access ( la base m'a été copiée localement sur mon pc).

    Donc je cherche à adapter ces lignes là à Access :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	<!-- local connection properties -->
    		<property name="hibernate.connection.url">jdbc:oracle:thin:planning@//db_serveur.tech.projipe.fr:1521/planning</property>
    		<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
    		<property name="hibernate.connection.username">planning2</property>
    		<property name="hibernate.connection.password">planning</property>
    		<!-- property name="hibernate.connection.pool_size"></property -->
    		<!-- dialect for Oracle 9 -->
    		<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
    Je suis allé sur le site d'hibernate et j'ai vu pour une chaîne de connexion Access :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" ?>
    <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
        <session-factory>
            <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
            <property name="dialect">NHibernate.JetDriver.JetDialect, NHibernate.JetDriver</property>
            <property name="connection.driver_class">NHibernate.JetDriver.JetDriver, NHibernate.JetDriver</property>
            <property name="connection.connection_string">Provider=Microsoft.Jet.OLEDB.4.0;Data Source=YourDatabaseFilePathHere.mdb</property>
        </session-factory>
    </hibernate-configuration>
    j'ai fait du copier coller et évidemment sur la console, on m'a marqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cause m�re 
     
    java.lang.RuntimeException: Problème de configuration : Dialect class not found: NHibernate.JetDriver.JetDialect, NHibernate.JetDriver
    donc je suis allé télécharger le NHibernate.JetDriver.JetDialect
    spécifié, j'ai décompressé dans mon répertoire lib de mon projet J2E, j'ai configuré mon classpath de mon projet mais quand j'essaye de me connecter avec ma jsp ça me réponds :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cause m�re 
     
    java.lang.RuntimeException: Problème de configuration : Dialect class not found: NHibernate.JetDriver.JetDialect, NHibernate.JetDriver
    et là je suis bloqué je ne sais pas trop comment faire....
    Je n'ai aucune docs fonctionnelles ni techniques sur l'existant...
    Pourtant le rapport du gars dit :

    Dans la mesure où le projet n'a pas complètement été mené à son terme, j'ai du effectué un important travail de documentation afin que mon successeur puisse aisément reprendre le projet, et trouver les informations recherchées.
    Donc voilà je vous demande votre aide si quelqu'un a une idée !

    merci d'avance
    a+

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par clio671 Voir le message
    Je suis allé sur le site d'hibernate et j'ai vu pour une chaîne de connexion Access :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" ?>
    <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
        <session-factory>
            <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
            <property name="dialect">NHibernate.JetDriver.JetDialect, NHibernate.JetDriver</property>
            <property name="connection.driver_class">NHibernate.JetDriver.JetDriver, NHibernate.JetDriver</property>
            <property name="connection.connection_string">Provider=Microsoft.Jet.OLEDB.4.0;Data Source=YourDatabaseFilePathHere.mdb</property>
        </session-factory>
    </hibernate-configuration>
    C'est une configuration NHibernate çà. Le driver et l'url de connection à utiliser sont tous les deux mentionné dans le lien que je t'ai fourni il me semble. Quand au dialecte à utiliser, il n'en existe ni pour odbc, ni pour access, donc tu n'en met pas (tu retire la ligne du fichier de configuration)

  5. #5
    Membre éclairé
    Avatar de clio671
    Profil pro
    Développeur Web
    Inscrit en
    Février 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2007
    Messages : 203
    Par défaut
    Bonjour,

    Pendant que je cherche, je vous soumets mon interrogation :

    Je cherche à faire une connexion avec une db access ; Dans ce cadre là j'ai un fichier hibernate à configurer, comme je n'y arrive pas j'ai décidé de tester la connexion à la base via une classe java.
    Le souci est qu'on me dit à l'exécution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] Nom de source de données trop long
    	at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    	at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    	at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    	at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    	at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)heeeeyyyyyy !!!!!
    ok
    de acuerdo les erreurs pour la connexion a la base sont : [Microsoft][Gestionnaire de pilotes ODBC] Nom de source de données trop long
    
    	at main.ConnectionAccess.<init>(ConnectionAccess.java:55)
    	at main.Principal.main(Principal.java:9)
    Maintenant, la ligne 55 qui bloque, dans mon fichier ConnectionAccess est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try
    		{
    			String url = "jdbc:odbc:C:\\Documents and Settings\\simon\\Bureau\\Planning_21P.mdb";
    			Connection con = DriverManager.getConnection(url);
    		}
    Donc la classe ConnectionAccess se présente comme ça :

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    package main;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.Properties;
    
    /**
     * 
     */
    
    /**
     * @author simon
     *
     */
    public class ConnectionAccess 
    {
    	public ConnectionAccess()
    	{
    		/*Pour se connecter à une base de données il est essentiel de charger 
    		 * dans un premier temps le pilote de la base de données à laquelle on 
    		 * désire se connecter grâce à un appel au DriverManager (gestionnaire de
    		 *  pilotes) : */
    		
    		/*Cette instruction charge le pilote et crée une instance de cette classe. 
    		 * Pour se connecter à une base de données déclarée dans l'administrateur
    		 *  ODBC par exemple, il faut charger le pilote JDBC-ODBC
    		 *   (appelé pont JDBC-ODBC) : */
    		try
    		{
    			System.out.println("ok");
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();   //nom du driver complet : sun.jdbc.odbc.JdbcOdbcDriver
    			System.out.println("de acuerdo");
    		
    		}
    		catch (ClassNotFoundException e) 
    		{
    			System.out.println(" les erreurs pour le driver sont :  " + e.getMessage());
    			e.printStackTrace();
    		} 
    		catch (InstantiationException e) 
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		catch (IllegalAccessException e) 
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    		
    		try
    		{
    			String url = "jdbc:odbc:C:\\Documents and Settings\\simon\\Bureau\\Planning_21P.mdb";
    			Connection con = DriverManager.getConnection(url);
    		}
    		catch (SQLException e) 
    		{
    			System.out.println(" les erreurs pour la connexion a la base sont : " +  e.getMessage());
    			e.printStackTrace();
    		}
    		
    		
    		
    		/*try
    		{
    			Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
    			System.out.println("=====the driver works===================");
    			System.out.println("");
    		} 
    		catch (ClassNotFoundException e) 
    		{
    			System.out.println("========================");
    			System.out.println(" le driver doesn't work !!! ");
    			System.out.println("========================");
    			e.printStackTrace();
    		}
    
    	
    		System.out.println("");
    		
    		String url = "C:\\Documents and Settings\\agautier\\Bureau\\Planning_21P.mdb";
    		String login = "";
    		String password = "Commerce";  // the pass to open the db
    		
    		try
    		{
    			System.out.println("===essai de la connexion=============================");
    			Connection connection = DriverManager.getConnection(url,login,password);
    			System.out.println("===connection is ok=======================");
    		}
    		catch(SQLException sqle)
    		{
    			
    			System.out.println(" les erreurs sont :  " + sqle.getMessage());
    			
    			System.out.println("");
    			System.out.println("===connection doesn't work========");
    		}
    		finally
    		{
    		   //cf Comment bien fermer une connexion ?
    		 }                             */
    		
    		/*String url = "C://Documents and Settings//agautier//Bureau//Planning_21P.mdb";
    		//String login = "log";
    		String password = "Commerce";
    		try
    		{
    		  Properties props = new Properties();
    		  //props.setProperty("user","userName");
    		  props.setProperty("password","motDePasse");
    		  props.setProperty("autoReconnect", "true");
    		  Connection connection = DriverManager.getConnection(url,props);
    		  System.out.println("it works !!!!!!!!!!!!!!!!!");
    		  //interaction avec la base
    		}
    		catch(SQLException sqle)
    		{
    			System.out.println(" les erreurs sont :  " + sqle.getMessage());
    		}
    		finally
    		{
    			System.out.println(" summertime");
    		}
    		*/
    	}   
    
    }
    J'ai essayé divers choses mais c'est toujours la même trace dans la console...
    Si vous avez des idées ou des suggestions à me faire, je suis preneur !!

    p.s à noter que ma base access se trouve sur le bureau

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] Nom de source de données trop long
    l'url correct pour de l'odbc c'est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "jdbc:odbc:Driver={Microsoft Access Driver(*.mdb)};DBQ=Chemindufichier\\nom.mdb"

  7. #7
    Membre éclairé
    Avatar de clio671
    Profil pro
    Développeur Web
    Inscrit en
    Février 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2007
    Messages : 203
    Par défaut
    dis moi, quand je pianote :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	try
    		{
    			String url = "jdbc:odbc:Driver={Microsoft Access Driver(*.mdb)};DBQ=C:/Documents and Settings/agautier/Bureau/Planning_21P.mdb";
    			Connection con = DriverManager.getConnection(url);
    		}
    ça me mets à la console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié
    	at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    	at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    	at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    	at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    	at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)heeeeyyyyyy !!!!!
    ok
    de acuerdo
     les erreurs pour la connexion a la base sont : [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié
    
    	at main.ConnectionAccess.<init>(ConnectionAccess.java:55)
    	at main.Principal.main(Principal.java:9)
    pourtant la base est sur mon bureau et le pilote est contenu dans le rt.jar qui contient toutes les classes odbcjdbc et rt.jar est bien dans mon repertoire lib de mon projet java ainsi que dans mon classpath...
    Si il y a des conseils, je suis preneur !!!

    a+ tard

Discussions similaires

  1. Chaînes de connexion
    Par jérôme dans le forum ASP
    Réponses: 7
    Dernier message: 15/10/2007, 14h19
  2. Hibernate et pool de connexion Tomcat
    Par K-Kaï dans le forum Hibernate
    Réponses: 8
    Dernier message: 09/08/2006, 17h21
  3. Hibernate-Mysql:Erreur de Connexion!!
    Par webtracker dans le forum Hibernate
    Réponses: 3
    Dernier message: 11/05/2006, 01h09
  4. [Hibernate][MySql] probleme de connexion ...
    Par Gromitou dans le forum Hibernate
    Réponses: 6
    Dernier message: 28/02/2006, 15h23
  5. comment costruire une chaîne de connexion ADO runtime
    Par lassad dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/10/2005, 14h16

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