Qual o valor de “conn” quando você chega nessa linha de código?
mathiasnw
quando instancio a classe CategoriaDao
ele faz a conexão numa conection factory que eu criei
seria um conection.
Eu ja testei em outros metodos e estão todos funcionando o erro vem desse metodo ai o find(int codigo);
thiagofesta
Cara, quando eu cliquei em responder o thingol falou a mesma coisa que eu ia falar hehe…
Pode ser que está null o conn…
thiagofesta
e a variavel rs?
Fez um debbug disso ai?
cdorner
TO ACHANDO MESMO É QUE O ERRO ESTA ACONTECENDO NA SUA JSP.
response.setContentType("text/html");PrintWriterout=response.getWriter();Categoriacat=newCategoriaDao().find(1);out.println("Categoria find");out.println(cat.getId());out.println(cat.getDescricao());out.println(cat.isExcluido());out.println("FInD termino e não possui erros");cat=newCategoria();cat.setId(0);cat.setDescricao("PenDrive");cat.setExcluido(false);out.println("Categoria Inserida");}catch(SQLExceptione){// TODO Auto-generated catch blocke.printStackTrace();}}
}
mathiasnw
então com as outras classes com a ProdutoDao funciona tranquilo,
o problema e quando chega nesse metodo
que é identico ao do produtoDao
mathiasnw
Eu não sei porque mais mudei o PrepareStatement para simples statement e funcionou
mathiasnw
Será que tem alguma relação com o Jar ser 3.1.x
victorwss
Isso é coisa no seu JSP, e não no Dao.
Observe que o seu DAO pode retornar null se ocorrer um erro. Isso é uma má prática de programação, pois além dele comer o erro, ele retorna algo como se nada tivesse acontecido. Para piorar esse algo é uma coisa inválida (null) que vai fazer alguma outra coisa dar pau mais a frente (provavelmente o NullPointerException que você tem).
Não permita que o seu DAO retorne null. Ao invés disso lance uma exceção de dentro do seu catch. Outra alternativa, não tão boa, mas melhor que retornar null, é deixar o seu método lançar SQLException.
EDIT. Pode ficar assim:public Categoria find(int codigo){
try {
String sql = "SELECT * FROM categoria WHERE id = ?";
PreparedStatement ps = this.conn.prepareStatement(sql);
ps.setInt(1, codigo);
ResultSet rs = ps.executeQuery();
Categoria c = new Categoria();
c.setId(rs.getInt("id"));
c.setDescricao(rs.getString("nome"));
return c;
} catch (SQLException e) {
System.out.println("Erro ao Procurar Categoria");
e.printStackTrace();
throw new MinhaRuntimeException(e);
}
}