2013-05-07 2 views
-1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 

мой код:при запуске моего кода Java я столкнулся эту ошибку ->

public static void loanenquiry(String ApplicationID,String LoanNumber,String RIMNumber,String custname,String fromdate,String todate) { 
    String wherestring = "SELECT * FROM bf_loanmaster WHERE";  

    try { 
     if(ApplicationID != null) { 
      wherestring = wherestring + "ApplicationID ="+BillAction.StringtoInt(ApplicationID)+""; 
     } 

     if(LoanNumber != null) { 
      if(ApplicationID != null) { 
       wherestring = wherestring + "AND LoanNumber = "+BillAction.StringtoInt(LoanNumber)+" "; 
      } else { 
       wherestring = wherestring + "LoanNumber = "+BillAction.StringtoInt(LoanNumber)+" "; 
      } 
     } 

     if(RIMNumber != null) { 
      if(ApplicationID != null && LoanNumber != null) { 
       wherestring = wherestring + "AND AdvparyRIM = "+RIMNumber+" "; 
      } else { 
       wherestring = wherestring + "AdvparyRIM = "+RIMNumber+""; 
      } 
     } 

     if(custname != null){ 
      if(ApplicationID != null && LoanNumber != null && RIMNumber != null) { 
       wherestring = wherestring + "AND custName = "+custname+""; 
      } else { 
       wherestring = wherestring + "custName = "+custname+""; 
      } 
     } 

     if(fromdate != null) { 
      if(ApplicationID != null && LoanNumber != null && RIMNumber != null && custname != null) { 
       wherestring = wherestring + "AND ApplicationDt >= "+BillAction.StringtoDate(fromdate)+" "; 
      } else { 
       wherestring = wherestring + "ApplicationDt = "+BillAction.StringtoDate(fromdate)+""; 
      } 
     } 
     if(todate != null) { 
      if(ApplicationID != null && LoanNumber != null && RIMNumber != null && custname != null && fromdate != null) { 
       wherestring = wherestring + "AND ApplicationDt >= "+BillAction.StringtoDate(fromdate)+" AND ApplicationDt <= "+BillAction.StringtoDate(todate)+""; 
      } else { 
       wherestring = wherestring + "ApplicationDt >= "+BillAction.StringtoDate(todate)+""; 
      } 
     } 

     Connection conn = BillFinanceDB.getDBConnection(); 
     PreparedStatement psloanenquiry= conn.prepareStatement(wherestring + ";"); 
     ResultSet rs = psloanenquiry.executeQuery(); 

     while(rs.next()) { 
      System.out.println("loan number"+rs.getInt("LoanNumber")); 
     } 
    } catch(SQLException e) { 
     e.printStackTrace(); 
    } 
} 

Есть идеи?

благодарит за помощь.

+1

Опубликовать точный след ошибки, а также ** окончательный запрос **, который становится выполнен! – SudoRahul

+0

есть одна проблема с вашим sql, пожалуйста, опубликуйте окончательное значение переменной wherestring – fmodos

+0

, вы забыли 'AND' в каждой ветке' else' –

ответ

5

Мое предположение: вам не хватает места после WHERE в вашей построенной строке. Попробуйте это:

String wherestring = "SELECT * FROM bf_loanmaster WHERE "; 

Лучший способ для отладки такого рода ошибок напечатать запрос SQL вы построили перед его выполнением, так что вы можете вручную проверить его на наличие проблем.

+0

Такая же проблема существует и в статьях – blank

+0

Пространствам требуются и другие места. вы должны распечатать запрос и понять проблему. –

+0

Да, есть много проблем для адреса, но печать запроса - это первый шаг! – Gian

0

дают пространство в запросе

String wherestring = "SELECT * FROM bf_loanmaster WHERE"; 

нет пространства между WHERE заявление и состояние.

1

WHERE, скорее всего, проблема. Вторая проблема, которую вы могли бы сделать, - это не помещать ваши строки в кавычки. Например, он, вероятно, должен быть wherestring = wherestring + "custName = '"+custname+"' ";

Также вещи, чтобы отметить:

Все это ужасно Добавление данных неэффективно, использовать StringBuilder или StringBuffer вместо этого. Вы также можете использовать PreparedStatements, которые улучшат ваш код и, возможно, даже облегчат его чтение.

1

Добавить место после того, как где .. Вы должны отделить ключевые слова, как где ..

Смежные вопросы