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 :

Tester une requete SQL


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 84
    Points : 49
    Points
    49
    Par défaut Tester une requete SQL
    Salut a tous,

    j'aimerai juste tester si une requête SQL possède un résultat (sans le récupérer)!

    J'ai mis en place cette methode
    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
     
    /*
    	 * Nom : testQuery
    	 * Fonction/Rôle : teste si une requete possède un résultat
    	 * Entrée : query type String, qui est la requete
    	 * Sortie : boolean, true si résultat, false sinon
    	 */
    	public static boolean testQuery(String query){
    		//ouverture de la session
    		Session session = HibernateUtil.currentSession();
    		//ouverture de la transaction
    		Transaction tx = session.beginTransaction();
    		try{
    			//execution de la requete
    	        Object res = (Object) session.createSQLQuery(query).list().get(0);
    	        //commit de la BDD
    	        tx.commit();
    	        //fermeture de la session
    			HibernateUtil.closeSession();
    			// si aucun résultat, return false
    			if (res == null)
    				return false;
    			else
    				return true;	
    		}catch(Throwable ex){
    			//restitution de l'ancienne BDD
    			tx.rollback();
    			//fermeture de la session
    			HibernateUtil.closeSession();
    			log.error("Error", ex);
    			return false;
    		}
    Mais le problème c'est que ca me pete des exceptions

    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
     
    java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    	at java.util.ArrayList.RangeCheck(ArrayList.java:547)
    	at java.util.ArrayList.get(ArrayList.java:322)
    	at com.mycompany.hibernate.GestionBDD.testQuery(Unknown Source)
    	at com.mycompany.middleware.CAjInfGeneral.checkProjectFromBDD(Unknown Source)
    	at com.mycompany.projet.PanelAjInfGeneral$1.onSubmit(Unknown Source)
    	at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1328)
    	at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:776)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:183)
    	at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
    	at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
    	at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1166)
    	at org.apache.wicket.RequestCycle.step(RequestCycle.java:1243)
    	at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1330)
    	at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
    	at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:358)
    	at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Thread.java:619)
    Comment améliorer cette méthode?

    Je vous remercie d'avance

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

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    A priori la liste retournée par ta requête est vide.
    Donc avant de faire un get(0), teste s'il y a au moins un élément dans ta liste.

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

Discussions similaires

  1. tester resultat d'une requete SQL
    Par com486 dans le forum JDBC
    Réponses: 7
    Dernier message: 20/01/2009, 20h46
  2. Réponses: 2
    Dernier message: 03/05/2004, 12h13
  3. date d'une requete sql
    Par innosang dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/04/2004, 09h27
  4. Mettre a jour les Parametres dans une requete SQL
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/03/2004, 13h51
  5. Une requete SQL unpeux difficile !!
    Par nil dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/03/2004, 12h32

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