2016-02-25 2 views
0

Я запускаю запрос базы данных из приложения Java.Ошибка преобразования данных H2 База данных

String id = app.getVariable("Product Id"), 
       name = app.getVariable("Product Name"), 
       rate = app.getVariable("Rate"), 
       type = app.getVariable("Type"), 
       desc = app.getVariable("Description"), 
       qty = app.getVariable("Quantity"); // Returns String from TextFields 

     type = type.equalsIgnoreCase("LIMITED") ? "TRUE" : "FALSE"; 


     try { 
      String query = "UPDATE COUNTER.PRODUCTS SET TITLE = ? AND RATE = ? AND IS_LIMITED = ? AND DESCRIPTION = ? WHERE ID = ?"; 
      PreparedStatement stmt = MainApp.getConnection().prepareStatement(query); 

      stmt.setString(1, name); 
      stmt.setDouble(2, Double.parseDouble(rate)); 
      stmt.setBoolean(3, Boolean.parseBoolean(type)); 
      stmt.setString(4, desc); 
      stmt.setInt(5, Integer.parseInt(id)); 

      stmt.executeUpdate(); 
     } catch(Exception ex1){ 
      System.out.println(ex1.toString()); 
     } 

Но SQLException встречается

org.h2.jdbc.JdbcSQLException: Ошибка преобразования данных преобразования "Сканирование"; SQL:
UPDATE COUNTER.PRODUCTS SET TITLE =? И СКОРОСТЬ =? И IS_LIMITED =? И ОПИСАНИЕ =? ГДЕ ID =? [22018-187]

Вставить запрос данных работает нормально, но я не могу выполнить запрос на обновление.

+1

http://h2database.com/html/grammar.html#update –

ответ

3

Написать свой запрос так:

UPDATE COUNTER.PRODUCTS SET TITLE = ? ,RATE = ? ,IS_LIMITED = ? ,DESCRIPTION = ? WHERE ID = ? 

С помощью запятой , вместо and.

+0

Спасибо. Это сработало. – tehTerminator

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