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

Oracle Discussion :

Exécuter une requête Oracle dans une application JEE [10g]


Sujet :

Oracle

  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Exécuter une requête Oracle dans une application JEE
    Bonjour,

    J'essaie de tester ma connexion entre une application web en JEE et une base de données oracle (10g express version).

    Voici mon code dans mon fichier bean.java:

    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
    private String sQuery="";
    String sQuery = null; 
    this.sQuery="select count(*) from table "; 
    Statement sStat=null; 
    Connection cCon=null;
    try{  // le chargement du driver 
       Class cDriverOracle=Class.forName("oracle.jdbc.driver.OracleDriver"); 
       Driver dDriverOracle=(java.sql.Driver)cDriverOracle.newInstance(); 
       DriverManager.registerDriver(dDriverOracle); 
              cCon=DriverManager.getConnection("jdbc:oracle:thin:@//127.0.0.1:1521/xe","base","pass"); 
       } 
       catch(Exception e){ 
       System.out.println("--Pbm en chargeant le driver JDBC oracle--"); 
       e.printStackTrace(); 
       } 
     
       try{ 
       sStat=cCon.createStatement();   
       ResultSet rs=sStat.executeQuery(sQuery); 
       while(rs.next()){ 
       System.out.println("le résultat de la requete: "+rs.getObject(1)); 
       } 
       sStat.close(); 
       } 
       catch(Exception sqlE){ 
       System.out.println("La Requête n'a pas abouti"); 
       sqlE.printStackTrace(); 
       }

    La connexion fonctionne normalement mais j'ai toujours un probleme dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultSet rs=sStat.executeQuery(sQuery);

    Là ça bloque et je reçois "La Requête n'a pas abouti" ce qui fait que je ne peux pas aboutir a des résultats.
    l'erreur est :
    java.sql.SQLException: L'instruction SQL à exécuter ne peut être ni vide ni null
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
    at oracle.jdbc.driver.OracleSql.initialize(OracleSql.java:112)
    at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1260)
    at com.sdzee.bdd.TestJDBC.executerTests(TestJDBC.java:100)
    at com.sdzee.servlets.GestionTestJDBC.doGet(GestionTestJDBC.java:19)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    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:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
    SVP aidez moi. Ça fait 3 jours de blocage pour quelque chose de classique. Je vous remercie.

    PS: ce même bout de code je l'ai écrit dans un projet java et ça marche mais dans un projet JEE ça n'a pas voulu marché.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 118
    Points : 94
    Points
    94
    Par défaut
    Salut,

    ça va paraitre surement bête ce que je vais dire mais...
    Dans ta requête, je vois écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private String sQuery="";
    String sQuery = NULL; 
    this.sQuery="select count(*) from table ";
    (D'abord, pourquoi ne pas affecter directement ta variable ? mais cela n'est pas le but du post).
    Es-tu certain que table est un élément que tu dispose dans ta BDD ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Stagiaire en développement delphi / oracle
    Inscrit en
    Juillet 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Stagiaire en développement delphi / oracle
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 9
    Points : 23
    Points
    23
    Par défaut
    Salut,

    Ce post est pas censé se situer dans la section Java ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private String sQuery='';
    => tu déclares un attribut de classe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String sQuery = NULL;
    => tu déclares une variable 'quelconque', que tu mets à null.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.sQuery="select count(*) from table ";
    => tu instancies ta variable de classe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ResultSet rs=sStat.executeQuery(sQuery);
    => tu utilises ta variable 'quelconque' qui pointe sur null.

    Je pense que le problème vient de là (on n'est jamais sûr de rien !)

  4. #4
    Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Je vous remercie c'était exactement le problème Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/11/2010, 08h21
  2. Réponses: 6
    Dernier message: 31/05/2010, 14h12
  3. erreur dans une requête sql dans une fonction php
    Par frboyer dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2009, 13h37
  4. Insérer le résultat d'une requête Oracle dans une table MS SQL
    Par Ninjazz dans le forum Accès aux données
    Réponses: 1
    Dernier message: 20/03/2007, 09h32
  5. [Requête] Utilisation d'une fonction perso dans une requête
    Par Julien Dufour dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2007, 09h53

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