Обновление базы данных mysql с использованием jdbc - PullRequest
1 голос
/ 15 марта 2012

Я использую следующий код для обновления базы данных MySQL

String sql = "update stocks set price = ?, high = ?, change = ? where SYMBOL = ?";  
PreparedStatement stmt = conn.prepareStatement(sql); 

for(int i=0;i<ing;i++)
 {   

    stmt.setString(1, price[i]); 
    stmt.setString(2, high[i]); 
    stmt.setDouble(3, changedvalue[i]); 
    stmt.setString(4, SYMBOL[i]);

    stmt.addBatch(); 
} 
stmt.executeBatch(); 

где changevalue - массив типа double. Если я удаляю изменения, он выполняется правильно. Но с этим он выдает следующую ошибку.

У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с 'change = 0.1, где SYMBOL =' '' в строке 1 В чем проблема

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

CHANGE - это зарезервированное слово в MySQL.Попробуйте процитировать это:

update stocks set price = ?, high = ?, `change` = ? where SYMBOL = ?
0 голосов
/ 15 марта 2012

Ваш SQL имеет четыре параметра. Ваш код устанавливает восемь. Это не может сработать.

Это ваш настоящий код? Если это так, то это ваша проблема, и решение состоит в том, чтобы ваш SQL и код соответствовали.

Если нет, покажите нам ваш фактический код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...