2013-10-27 2 views
0

Я создал таблицу в mysql с одним столбцом «Sno». И вставляется с 1 по 10 в столбце «Sno». Я хочу обновить значения столбцов в соответствии со Sno, но я не могу этого сделать. пожалуйста помогите. Спасибо.Не удалось обновить значения столбцов в mysql с помощью java?

Вот что мой код.

int o=2,q=0; 
ResultSet rs = st7.executeQuery("select * from table"); 
ResultSetMetaData metadata = rs.getMetaData();//here is columns are added dynamically,So that is metadata is needed. 

BufferedReader br1 = new BufferedReader(new FileReader(f1));//here f1 is csv file path. 

while ((line1 = br1.readLine()) != null) { 

    String[] splits = line1.split(",");//splitting line by ',' and storing into array. 

    n1 = splits.length; 

    for (m = 0; m < n1; m++) { 

     st8.executeUpdate("UPDATE table SET " + metadata.getColumnName(o) + "='" + splits[m] + "' WHERE Sno='"+q+"'"); 
     o++; 
    } 

    q++; 
    out.println("<br>"); 
} 

Структура таблицы

+--------+--------+--------+--------+---------+-----------+ 
|Sno  | col1 | col2 | col3 | col4 | col5  | 
+--------+--------+--------+--------+---------+-----------+ 
| 0  | NULL | NULL | NULL | NULL | NULL  | 
+--------+--------+--------+--------+---------+-----------+ 
| 1  | NULL | NULL | NULL | NULL | NULL  | 
+0

Какие ошибки вы получаете, если таковые имеются? – allejo

+0

'table' - зарезервированное ключевое слово в MySQL. Пожалуйста, используйте другое подходящее имя для своей таблицы. –

ответ

0

Использование

st8.executeUpdate("UPDATE `table` SET " + metadata.getColumnName(o) + "='" + splits[m] + "' WHERE Sno='"+q+"'"); 

поскольку таблицы является зарезервированным словом.

У вас могут быть другие проблемы, но это, безусловно, тот, который сломает его.

И ... вы должны действительно правильно настроить ваш запрос. Это также может нарушить из входов с одинарными кавычками, и т.д.

0

Я думаю, что запрос должен быть этот

«UPDATE таблица SET» + metadata.getColumnName (о) + «=» + расколы [ m] + "WHERE Sno =" + q

только двойная кавычка, без единой кавычки.

Надеюсь, он сработает

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