Salve,
mi chiamo Elisabetta e sono una studentessa di informatica e mi sto per laureare.
Per la tesi di laurea, che sto finendo, ho dovuto creare un codice che andasse a modificare un database che mi è stato dato dal relatore, di preciso ho dovuto aggiungere due colonne su due tabelle diverse una che contiene la categoria di persone e l'altra che da a un gruppo formato dalle stesse persone lo stesso identificatore.
Il codice risulta essere corretto su eclipse solo che quando lo vado ad eseguire mi esce il seguente errore: "Eccezione instanziazione f.getGroup().add()The column name user was not found in this ResultSet."
Ho capito in quale parte del codice è l'errore ma non capisco ne il perchè mi dia errore e ne come risolvere questo problema che ripeto a me sembra corretto e anche secondo eclipse. Chiedo quindi un aiuto per risolvere il problema il prima possibile dato che devo consegnare la tesi entro i primi di ottobre.
A seguire il codice in questione:
//per ogni id della famiglia mi restituisce: canale, utente, data inizio e ora, data fine e ora
for(Famiglia f: family) {
try(PreparedStatement pst_G = conn.prepareStatement("SELECT id, epg_channel_id, user, starttime, endtime FROM log2_3min_groups_clean WHERE family_id = ?")) {
//set the variables
pst_G.setInt(1, f.getId()); //parameters are: (index <of var>, value <of var>)
//eseguo la query
ResultSet rs_G = pst_G.executeQuery();
//foreach record from the database about every action of every family's component
//int indexGroup = 0;
//int indexUserIntoGroup = 0; attualmente non in uso
while(rs_G.next()) {
//se la lista è vuota
if(f.getGroup().isEmpty()){
//instanzio il primo gruppo e utente
... //codice funzionante irrilevante
try {
f.getGroup().add(new Gruppo(rs_G.getInt("epg_channel_id"), dS, hS, dE, hE));
//credo che l'errore sia in questo ciclo for o nel comando getInt perchè non riconosce user
for(int idx = 0; idx < utenti.size(); idx++)
if(utenti.get(idx).getId() == rs_G.getInt("user"))
idxUtente = idx;
if(f.getGroup().get(0).addUtente(utenti.get(idxUtente), rs_G.getInt("epg_channel_id"), dS, hS, dE, hE, rs_G.getInt("id")) == true) { //get(0) it's better than others 'cause if we know the list it's empty and also we use add() method, we know there is only one element at the index=0
System.out.println("Expected");
} else {
System.out.println("Unexpected");
}
} catch (Exception e) {
System.out.println("Eccezione instanziazione 1 f.getGroup().add()" + e.getMessage());
}