2017-06-12 1 views
0

Dans mon code ci-dessous requête ist est fait avec succès, mais à partir du résultat de la requête ist besoin d'utiliser pour la 2ème requête de son ne fonctionne pasquestion faceing avec la deuxième requête qui est fonction de la première requête

 try{ 

      pstmt=conn.prepareStatement("SELECT * FROM loanrequest where loan_status_id='1' and loan_sub_status_id is NULL and business_id!=0 and white_label_id=1 order by loanId desc limit 1;;"); 


      ResultSet rs=pstmt.executeQuery(); 



      while(rs.next()){ //next result will check until the result 

       String dbbusinessname=rs.getString("loan_ref_id"); 
       xls.setCellData("Data","loan_ref_id",35,dbbusinessname); 
       System.out.println(dbbusinessname); 

       String dbloanId=rs.getString("loanId"); 
       xls.setCellData("Data","loanId",35,dbloanId); 


       //Need to use loan id in my 2nd query 

// cette partie est dépend sur requête ist. // cette requête en dessous de sa ne fonctionne pas

   pstmt=conn.prepareStatement("SELECT * FROM loan_bank_mapping where loan_id='dbloanId';;"); 

       ResultSet rs=pstmt.executeQuery(); 



      while(rs.next()){ //next result will check until the result 

       String dbloan_bank_mapping_id=rs.getString("loan_bank_mapping_id"); 
       xls.setCellData("Data","loan_bank_mapping_id",35,dbloan_bank_mapping_id); 
       System.out.println(dbbusinessname); 




      } 
      }catch (Exception e) { 


       System.out.println("Error in fireing query"); 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      Assert.fail("Exception in query"+e.getMessage()); 

       //throw new SkipException("Could not establish connection"); 
      }//Create the object of driver class 

déconnexion public void() {

//when doing testing after testing need to close orelse trouble will come 


    try { 


     if(rs!=null){ 
      rs.close(); 
     } 


     if(pstmt!=null){ 
      pstmt.close(); 
     } 

     if((conn!=null) && (!conn.isClosed())){ 
      conn.close(); 
     } 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

Pour nous aider à déboguer votre problème, pouvez-vous nous montrer une erreur ou un stacktrace? Connaissez-vous la valeur du resultset? Avez-vous testé votre requête directement sur la base de données? cela a-t-il fonctionné? – Thomas

+0

Que voulez-vous dire par * son ne fonctionne pas *? – Guy

+0

effectivement son fonctionnement bien la requête ist mais le résultat de la deuxième requête ne s'affiche pas – Ruma

Répondre

0

Dans la deuxième déclaration, vous utilisez un littéral pour la valeur de loan_id. Vous devez placer un espace réservé dans votre chaîne, puis lui lier la valeur.

pstmt=conn.prepareStatement("SELECT * FROM loan_bank_mapping where loan_id=?"); 
pstmt.setString(1, dbloanId); 

avoir une lecture de http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html pour une explication plus détaillée des déclarations préparées et comment les utiliser avec binds.

(Note: je n'ai pas essayé ce code, mais j'espère que l'idée vous aidera).