Использование Java для заполнения определенного столбца в таблице SQL - PullRequest
0 голосов
/ 23 октября 2010

По сути, у меня есть методы, которые манипулируют данными, взятыми из таблицы, для создания нового объекта "ZExpert". ZExpert имеет параметры int id, int domain и double ZExpert. Я добавил столбец в таблицу, из которой я взял данные, под названием «Z_Expert_Score».

Я хочу поместить двойную оценку ZExpert объекта в столбец Z_Expert_Score в строке, где «Customer_Expert_ID» = домен и «Customer_ID» = идентификатор. Вот моя попытка

ZExpert[] allZExpert = scrCalc.getzExpertAll();

for(int i = 0; i < allZExpert.length; i++) {
  ZExpert currentZExpert = allZExpert[i]; 
  int id = currentZExpert.getId();
  int domain = currentZExpert.getDomain();
  double ZExpertScore = currentZExpert.getzExpert();

  Statement statement = conn.createStatement();
  statement.executeUpdate ("INSERT INTO CONSUMER_EXPERT_ID 
                             where CONSUMER_EXPERT_ID="+domain+"AND CONSUMER_ID="+id+ "(Z_EXPERT_SCORE) VALUES("+ZExpertScore+")");
}

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 23 октября 2010

Вам необходимо использовать обновление SQL-оператора , а не вставку.

UPDATE CUSTOMER_TABLE SET Z_EXPERT_SCORE = ? WHERE CONSUMER_EXPERT_ID= ? AND CONSUMER_ID= ?

Кроме того, вы должны использовать PreparedStatement, а не объединять строки вместе для создания оператора SQL.

ZExpert[] allZExpert = scrCalc.getzExpertAll();

for(int i = 0; i < allZExpert.length; i++) {
  ZExpert currentZExpert = allZExpert[i]; 
  int id = currentZExpert.getId();
  int domain = currentZExpert.getDomain();
  double ZExpertScore = currentZExpert.getzExpert();

  String sql = "UPDATE CUSTOMER_TABLE SET Z_EXPERT_SCORE = ? WHERE CONSUMER_EXPERT_ID= ? AND CONSUMER_ID= ?";
  PreparedStatement statement = con.prepareStatement(sql);
  statement.setDouble(1, zExpertScore);
  statement.setInt(2, domain);
  statement.setInt(3, id);
  statement.executeUpdate();
}
0 голосов
/ 23 октября 2010

Если вы расширяете уже существующие строки, вы захотите использовать оператор UPDATE.

...