This commit is contained in:
2025-09-26 13:21:58 +02:00
parent 7c72e94d8d
commit e35f36db4b
4 changed files with 65 additions and 28 deletions

View File

@@ -3,17 +3,9 @@ import java.sql.DriverManager;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList;
public class Database { public class Database {
//Countries
public static String COUNTRY_ID = "id";
public static String COUNTRY_NAME = "name";
//Votes table
public static String VOTES_COMPETITOR_ID = "competitor_id";
public static String VOTES_VOTER_ID = "voter_id";
public static String VOTES_POINTS = "points";
private Connection connection; private Connection connection;
@@ -33,13 +25,20 @@ public class Database {
} }
} }
public ResultSet getVotesFromCompetitor(String country) { public Votes getVotesFromCompetitor(String country) {
try { try {
PreparedStatement query = this.connection.prepareStatement( PreparedStatement query = this.connection.prepareStatement(
"SELECT Countries.name, Countries.points FROM Votes INNER JOIN Countries ON Votes.competitor_id = Countries.id WHERE Votes.competitor_id = Countries.id" "SELECT Countries.name Votes.points" +
"FROM Votes JOIN Countries ON Votes.competitor_id = Countries.id" +
"WHERE Countries.name = " + country
); );
ResultSet result = query.executeQuery(); ResultSet result = query.executeQuery();
ArrayList<Vote> voteList = new ArrayList<>();
while(result.next()) {
voteList.add(new Vote(result.getString("name"), result.getInt("points")));
}
try { try {
query.close(); query.close();
@@ -47,7 +46,7 @@ public class Database {
System.err.println("Error while trying to close the query."); System.err.println("Error while trying to close the query.");
} }
return result; return new Votes(country, voteList);
} catch(SQLException exception) { } catch(SQLException exception) {
System.err.println("Error while trying to prepare or execute the query."); System.err.println("Error while trying to prepare or execute the query.");
} }

View File

@@ -1,26 +1,16 @@
import java.sql.ResultSet;
import java.sql.SQLException;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
Database database = new Database(); Database database = new Database();
String country = "France"; Votes votesForItaly = database.getVotesFromCompetitor("Italie");
ResultSet result = database.getVotesFromCompetitor(country);
try { System.out.println("Vote " + votesForItaly.getCompetitorName() + " :");
while(result.next()) { for(Vote vote : votesForItaly.getVoters()) {
System.out.println(country + " -> " + result.getString("name") + " : " + result.getInt("points")); System.out.println(vote.getVoterName() + " " + vote.getPoints());
}
} catch(SQLException exception) {
System.err.println("Error while read the data from the result.");
} }
try { System.out.println("-------------------");
result.close(); System.out.println("Total " + votesForItaly.getTotalPoints());
} catch(SQLException exception) {
System.err.println("Error while trying to close the result.");
}
} }
} }

View File

@@ -0,0 +1,18 @@
public class Vote {
private String voter;
private int points;
public Vote(String voter, int points) {
this.voter = voter;
this.points = points;
}
public String getVoterName() {
return this.voter;
}
public int getPoints() {
return this.points;
}
}

View File

@@ -0,0 +1,30 @@
import java.util.ArrayList;
public class Votes {
private String competitor;
private ArrayList<Vote> voters;
public Votes(String competitor, ArrayList<Vote> voters) {
this.competitor = competitor;
this.voters = voters;
}
public String getCompetitorName() {
return this.competitor;
}
public ArrayList<Vote> getVoters() {
return this.voters;
}
public int getTotalPoints() {
int sum = 0;
for(Vote vote : this.voters) {
sum += vote.getPoints();
}
return sum;
}
}