Boas!!!
Tenho uma classe que se conecta ao postgre!!!
E queria um método para contar o número de utilizadores existentes, tenho o seguinte código:
public static int BD_getContaUtlizadores() {
BD_checkConnection();
int cnt = 0;
try {
String query = "SELECT COUNT(*) FROM utilizador";
Statement st = c.createStatement();
ResultSet rs = st.executeQuery(query);
cnt = (int) rs.getLong(query);
st.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return(cnt);
}
Ao tentar chamar este método diz.me que \\"The column name SELECT COUNT(*) FROM utilizador not found.\\"
O que estou a fazer mal?? Quando faço esta query no psql ela funciona!!!!
Não consigo identificar essa linguagem... Que linguagem é essa ?
Java... com SQL!!!
O query parece estar bem feito, e ele parece estar a fazer o query...
Experimenta colocar o \\';\\' no fim da query SQL.
O problema parece ser o facto de ele não encontrar a tabela \\'utilizadores\\'. Cerifica-te que a conecção foi feita àBD correcta.
Já consegui corrigir o erro, e estava mesmo na query!!! Fica algo do género:
public static int BD_getContaUtlizadores() {
BD_checkConnection();
int cnt = 0;
int qt = 1;
try {
String query = "SELECT COUNT(*) AS qt FROM utilizador";
Statement st = c.createStatement();
ResultSet rs = st.executeQuery(query);
rs.next();
cnt = rs.getInt(qt);
st.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
System.exit(1);
}
return (cnt);
}