Seguinte, estou tentando utilizar o PreparedStatement para efetuar a contagem de registros numa tabela do banco de dados, porém quando execute o código abaixo ele dá um erro. Ao debugar, notei que o erro está na linha que estou atribuindo ao PreparedStatement (this.pst) o prepareStatement.
O servidor retorna isso:
"SEVERE: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException"
Alguém pode me ajudar?
Grato pela atenção!
public int count() {
int lines = 0;
try {
this.mysql.connect();
this.pst = this.con.prepareStatement("SELECT count(*) AS count FROM customer;");
this.rs = this.pst.executeQuery();
this.rs.next();
lines = this.rs.getInt("count");
this.pst.close();
this.rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.mysql.disconnect();
}
return lines;
}
Tenta tirar o ; ao final da sql, e também ao invés de getInt(“count”), tente getInt(1)
tiagoscd
Já tentei, o erro continua! Sei que a conexão com o banco de dados está ok, pois efetuo outras ações no banco de dados, via Java, e funcionam tranquilamente. Somente quando utilizo PreparedStatement dá erro. Quando uso o Statement vai certinho
Mais alguma sugestão?
Grato!
B
Bruno_Laturner
O stacktrace não retorna a linha onde foi o exceção? Tente também fechar o result set antes do prepared statement.
tiagoscd
Retorna sim, e é exatamente a mesma linha que encontrei no debug, a de atribuição do prepareStatement ao PreparedStatement!
this.pst=this.con.prepareStatement("SELECT count(*) AS count FROM customer;");
PS: Inverti a posição dos “close()” e o erro persiste =\
Grato pela atenção
RaulCarlin
Mostra o código de conexão, que atribui à esse objeto con o Connection com o MySQL… provavelmente tá lá o problema…
tiagoscd
Na realidade o problema não está na conexão, pois ao executar comandos através do Statement, usando a mesma conexão, funciona tranquilamente. Mas pra desencargo de consciência: