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 :

Utilisation de CallableStatement


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Points : 17
    Points
    17
    Par défaut Utilisation de CallableStatement
    Bonjour,

    J'aimerai en effet utiliser l'Objet CallableStatement pour utiliser une procédure stocké (SQL Server), donc je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    		String sql = "{? = call usp_Entity_Insert[(?, ?, ?, ?)]}";
    		Session session = HibernateUtils.getSession();
    		CallableStatement statement = session.connection().prepareCall(sql);
    		statement.registerOutParameter(1,Types.INTEGER);
    		statement.setString(2,tEntity.getLabel());
    		statement.setString(3,tEntity.getDescription());
    		statement.setString(4,tEntity.getCreationUser());
    		statement.setDate(5, (Date) tEntity.getCreationDate());
    		statement.execute();
    Et voici le message d'erreur :

    INFO : org.hibernate.connection.ConnectionProviderFactory - Initializing connection provider: org.hibernate.connection.DBCPConnectionProvider
    ERROR: org.hibernate.connection.ConnectionProviderFactory - Could not instantiate connection provider
    java.lang.ClassNotFoundException: org.hibernate.connection.DBCPConnectionProvider
    Et je n'arrive pas comprendre pourquoi ...

    Avez-vous déjà rencontrer ce type de problème ? Avez-vous une piste ?
    Je suis preneur ^^

    Par avance, merci !

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    Il ne trouve pas la classe "org.hibernate.connection.DBCPConnectionProvider".
    Tu as du renseigner un paramètre qui indique à Hibernate d'utiliser cette classe.

    Soit tu changes ce paramètre.
    Soit tu ajoutes le jar qui te manque.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Points : 17
    Points
    17
    Par défaut
    Franchement je ne sais pas du tout quelle paramètre retirer.
    Avez-vous une idée ?

    Voici le datasource :
    <!-- Datasource dev -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    p:driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    p:url="jdbc:sqlserver://****.***.**;instanceName=***;databaseName=***;"
    p:username="**" p:password="*******" />
    Et les configs :
    <properties>
    <!-- The database dialect to use -->
    <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
    <!-- log the generated SQL -->
    <property name="hibernate.show_sql" value="true"/>
    <property name="hibernate.jdbc.use_get_generated_keys" value="true"/>
    <property name="hibernate.connection.autocommit" value="true"/>
    <property name="hibernate.transaction.flush_before_completion" value="true"/>
    <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>
    <property name="hibernate.ejb.cfgfile" value="hibernate.cfg.xml"/>
    <property name="hibernate.cache.use_second_level_cache" value="true"/>
    <property name="hibernate.cache.use_query_cache" value="true"/>
    </properties>
    Et cette classe je ne la trouve nulle part sur la toile ... :S

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Points : 17
    Points
    17
    Par défaut
    J'ai oublié mon fichier de config Hibernate :

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

    <hibernate-configuration>
    <session-factory>
    <property name="hibernate.current_session_context_class">
    org.springframework.orm.hibernate3.SpringSessionContext
    </property>
    </session-factory>
    </hibernate-configuration>

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Points : 17
    Points
    17
    Par défaut
    Je viens de voire que j'avais un fichier .properties.
    Je l'ai donc maintenant modifier comme ceci :

    hibernate.connection.provider_class=org.hibernate.connection.ConnectionProvider
    Et maintenant j'ai ce message d'erreur :

    ERROR: org.hibernate.connection.ConnectionProviderFactory - Could not instantiate connection provider
    java.lang.InstantiationException: org.hibernate.connection.ConnectionProvider
    at java.lang.Class.newInstance0(Class.java:340)
    at java.lang.Class.newInstance(Class.java:308)
    ....
    :S :S :S

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Points : 17
    Points
    17
    Par défaut
    Et je me demande si j'en ai réellement besoin de ce fichier properties... :S
    J'ai déjà un fichier de persistence.xml, un fichier de config application-context et un fichier de config hibernate.cfg.xml...

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Points : 17
    Points
    17
    Par défaut
    Si je retire ce fichier de paramètre, j'ai ceci comme erreur maintenant :

    " 'hibernate.dialect' must be set when no Connection available"

    Des idées ?

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Points : 17
    Points
    17
    Par défaut
    J'ai donc comme vous m'avez conseillez de faire utiliser ce provider ...
    Je l'ai donc mis dans un fichier "hibernate.properties" (vu que l'ancien provider était écrit ici)...
    Mais cela ne fonctionne toujours pas, quand je veux ouvrir une session une exception survient disant que je ne peux pas instancier ce provider :

    ERROR: org.hibernate.connection.ConnectionProviderFactory - Could not instantiate connection provider
    java.lang.InstantiationException: org.hibernate.connection.ConnectionProvider
    at java.lang.Class.newInstance0(Class.java:340)
    at java.lang.Class.newInstance(Class.java:308)
    Avez-vous des idées ?

  10. #10
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    Il n'utilise pas celui spécifié
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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