Сначала какой-то контекст:
Часть 1. Я получаю все значения из столбца VOTES в таблице. SURVEYRESULTS
Часть 2. Каждый раз, когда я голосую за конкретного животного, addVote ()сработает со своим конкретным параметром Я знаю, какое животное нуждается в дополнительном голосовании.Поэтому я добавляю 1 голос к этому животному.
По какой-то причине происходит следующее:
Допустим, все животные имеют 0 голосов в моей базе данных.Я тогда голосую за "Собаку".«Собака» тогда имеет 1 голос.Затем я снова голосую за «Собаку», «Собака» не будет иметь 2 голосов, но все равно 1 голос.
Таким образом, кажется, что код работает, но что «int voiceDataDog» остается на значении 0Я не понимаю, почему это так.
Вот мой код:
int voteDataDog;
int voteDataCat;
int voteDataBird;
int voteDataSnake;
int voteDataNone;
// Part 1
public void getVoteData() throws SQLException{
s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT VOTES FROM SURVEYRESULTS");
while(rs.next()){
voteDataDog = rs.getInt("VOTES");
voteDataCat = rs.getInt("VOTES");
voteDataBird = rs.getInt("VOTES");
voteDataSnake = rs.getInt("VOTES");
voteDataNone = rs.getInt("VOTES");
}
}
//Part 2
public void addVote(String parameter) throws SQLException {
this.getVoteData();
if(parameter.equals("1")){
voteDataDog ++;
s.execute("UPDATE SURVEYRESULTS SET VOTES= " + this.voteDataDog + " WHERE ID=1");
}
if(parameter.equals("2")){
voteDataCat ++;
s.execute("UPDATE SURVEYRESULTS SET VOTES= " + voteDataCat + " WHERE ID=2");
}
if(parameter.equals("3")){
voteDataBird ++;
s.execute("UPDATE SURVEYRESULTS SET VOTES= " + voteDataBird + " WHERE ID=3");
}
if(parameter.equals("4")){
voteDataSnake ++;
s.execute("UPDATE SURVEYRESULTS SET VOTES= " + voteDataSnake + " WHERE ID=4");
}
if(parameter.equals("5")){
voteDataNone ++;
s.execute("UPDATE SURVEYRESULTS SET VOTES= " + voteDataNone + " WHERE ID=5");
}
rs = s.executeQuery("SELECT * FROM surveyresults ORDER BY id");
rmd = rs.getMetaData();
}
Пример вывода:
-----------------------------------------------------------------------
ID SURVEYOPTION VOTES
1 Dog 0
2 Cat 1
3 Bird 0
4 Snake 0
5 None 0
-----------------------------------------------------------------------
На самом деле мне нужен голосзначения для каждого животного.
int voteDataDog;
int voteDataCat; --> needs to become value '1' after Part 1
int voteDataBird;
int voteDataSnake;
int voteDataNone;