Estou há um bom tempo tentando descobrir o erro que recebo ao tentar retornar dados da classe comentário na classe comentarioDAO
, sempre recebo a mesma mensagem. Segue o código:
package br.com.taverna.dao;
import br.com.taverna.connection.ConnectionFactory;
import br.com.taverna.model.Comentario;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.List;
public class ComentarioDAO {
Connection connection;
public ComentarioDAO() {
this.connection = new ConnectionFactory().getConnection();
}
public void insert(Comentario comentario) {
String sql = "INSERT INTO comentario(texto, dataPublicaco, produto_idProduto, pessoa_idPessoa) "
+ "VALUES(?, ?, ?, ?)";
try {
PreparedStatement pstm = this.connection.prepareStatement(sql);
pstm.setString(1, comentario.getTexto());
pstm.setDate(2, new Date(comentario.getDataPublicacao().getTimeInMillis()));
pstm.setInt(3, comentario.getProduto().getId());
pstm.setInt(4, comentario.getPessoa().getIdPessoa());
pstm.execute();
}catch(SQLException e) {
throw new RuntimeException(e);
}
}
public List<Comentario> getList() {
List<Comentario> comentarios = null;
try {
PreparedStatement pstm = this.connection.prepareStatement("SELECT * FROM comentario");
ResultSet rs = pstm.executeQuery();
while(rs.next()) {
Comentario comentario = new Comentario();
comentario.setIdComentario(rs.getInt("idComentario"));
comentario.setTexto(rs.getString("texto"));
Calendar dataPublicacao = Calendar.getInstance();
dataPublicacao.setTime(rs.getDate("dataPublicaco"));
comentario.setDataPublicacao(dataPublicacao);
comentario.setProduto(new ProdutoDAO().findById(rs.getInt("produto_idProduto")));
comentario.setPessoa(new PessoaDAO().findById(rs.getInt("pessoa_idPessoa")));
comentarios.add(comentario);
}
return comentarios;
}catch(SQLException e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
List<Comentario> comentarios = new ComentarioDAO().getList();
for(Comentario comentario : comentarios) {
System.out.println("\n-------------Comentário----------------"
+ "\nTexto: "+comentario.getTexto());
}
}
}
Erro:
run:
Exception in thread “main” java.lang.NullPointerException
at br.com.taverna.dao.ComentarioDAO.getList(ComentarioDAO.java:56)
at br.com.taverna.dao.ComentarioDAO.main(ComentarioDAO.java:66)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)