2015-05-11 4 views
0

Я получаю следующее сообщение об ошибкеJava ВЫБРАТЬ запрос У вас ошибка в вашем SQL синтаксиса

У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «Date =„2015-04-26“ORDER BY TraceNum» в строке 1

Это запрос,

"SELECT Name, sporecount.* FROM sporesfungi INNER JOIN sporecount ON sporesfungi.IDSpore = sporecount.IDSpore WHERE Date = ? ORDER BY TraceNum"; 

Если я удалю предложение WHERE, запрос работает нормально.

Это полный код

public void exportToExcel(String date) throws IOException, BiffException, 
WriteException, SQLException, ParseException{ 
Db_Connect connection = new Db_Connect(); 
conn = connection.connect(); 



String originalFile = "C:\\Users\\Geni\\Desktop\\Book1-Template-new.xls"; 
date = date.replace("/", "-"); 
SimpleDateFormat myDate = new SimpleDateFormat("yyyy-MM-dd"); 

try{ 
     Workbook original = Workbook.getWorkbook(new File(originalFile)); 
     WritableWorkbook copy = Workbook.createWorkbook(new File(date+".xls"), original); 

     java.util.Date format = myDate.parse(date); 
     java.sql.Date newDate = new java.sql.Date(format.getTime()); 

     String sql = "SELECT Name, sporecount.* FROM sporesfungi " 
     + "INNER JOIN sporecount ON sporesfungi.IDSpore = sporecount.IDSpore" 
       + "WHERE Date = ? ORDER BY TraceNum"; 

     PreparedStatement statement = conn.prepareStatement(sql); 
     statement.setDate(1, newDate); 
     rs = statement.executeQuery(); 
     /*stmt = conn.createStatement(); 
     rs = stmt.executeQuery(sql);*/ 


     WritableSheet sheet = copy.getSheet(0); 
     WritableCell cell; 
     String spore; 

     while(rs.next()){ 
      for(int i = 2; i < 64 ;i++){ 
       cell = sheet.getWritableCell(1,i); 
       spore = cell.getContents(); 
       if(rs.getString("Name").equals(spore)){ 
        Number l1 = new Number(14-rs.getInt("TraceNum"),i,rs.getInt("Amount")) ; 
        sheet.addCell(l1); 

        } 

      } 
     } 


     copy.write(); 
     copy.close(); 
     original.close(); 
    } 
    catch (BiffException | IOException e) { 
    } 


} 
+4

Судя по образцу кода, вам нужно пространство перед 'WHERE' – Uueerdo

+0

Omg не может поверить, что это было просто так, спасибо, что это сработало! – Alf

+0

Добавлено как ответ, чтобы его можно было правильно маркировать. – Uueerdo

ответ

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