2010-10-23 3 views
0

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

Я хочу поместить двойной результат ZExpert из объекта в столбце Z_Expert_Score, в строке где «Customer_Expert_ID» = domain и «Customer_ID» = 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

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

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

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

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