Estou tentando inserir dados em uma tabela, porém está me retornando erro de nullpointerexception. Os objetos estão instanciados, mas não consigo saber onde está o problema. Segue os códigos:
[b]CursoBean[/b]
@ManagedBean
@SessionScoped
public class CursoBean implements Serializable {
private CursoDao cursoDao ;
private Curso curso = new Curso();
//getters e setters de curso
public String inserir() throws SQLException, ClassNotFoundException{
cursoDao = new CursoDao();
String resultado = "falha";
int codCur = (this.cursoDao.seqCurso());
System.out.println(codCur);
boolean retorno = cursoDao.inserir(curso); //Nesta parte que ocorre o erro, pois não está chamando o CursoDao
System.out.println(retorno);
if (retorno) {
resultado = "cursos";
}
return resultado;
}
}
CursoDao
public class CursoDao implements Serializable {
private Connection connection;
String cmdSQL;
private boolean sucesso = false;
public CursoDao() throws SQLException, ClassNotFoundException {
this.connection = new ConnectionFactory().getConnection();
}
public boolean inserir(Curso curso) {
cmdSQL = "insert into curso " +
"(cod_curso, nome_curso)"
+" values (?,?)";
try {
PreparedStatement stmt = connection.prepareStatement(cmdSQL);
//System.out.println(curso.getCod_curso());
stmt.setInt(1, curso.getCod_curso());
stmt.setString(2, curso.getNome_curso());
stmt.execute();
stmt.close();
sucesso = true;
} catch (SQLException e) {
throw new RuntimeException(e);
}
return sucesso;
}
}
Oi Leandro, agora que passei por aqui para postar. Eu fiz umas correções no cursoDao que corrigiu o problema, porém eu continuo com problemas do nullpointer quando uso o dialog no xhtml. O código abaixo é o xhtml para cadastro/alteração dos dados de curso. coloquei as linhas comentadas, pois somente assim não apresenta o erro e grava corretamente na tabela. A classe curso contém somente os atributos e os getters e setters.
Depois de muito pesquisar e testar, consegui uma solução bem simples (não sei se é a melhor). Bastou eu retirar o dialog de dentro do form, ou seja, coloquei-o após o fechar o form principal. Funcionou tanto para inserir, que estava dando NullPointer quanto para Alteração que trazia somente os dados antigos.