Estou há um tempo tentando resolver o problema de um trabalho que preciso entregar semana que vem. Alguém poderia ajudar? Segue abaixo o código:
Item da lista
package persistencia;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import pojo.Descricao;
public class DescricaoDAO {
private ConexaoJava conexao;
private final String SQLINSERIR = "INSERT INTO descricao VALUES(null, ?, ?, ?,?)";
private final String SQLALTERAR = "UPDATE descricao SET situacao =?, numero_paginas =?, tamanho =?, id_livros =? WHERE id_descricao = ?";
private final String SQLDELETAR = "DELETE FROM descricao WHERE id_descricao=?";
private final String SQLBUSCAR = "SELECT * FROM descricao WHERE id_descricao =?";
public DescricaoDAO() {
this.conexao = new ConexaoJava("localhost", "integrador","root", "root");
}
public Descricao inserir(Descricao descricao) {
this.conexao.getConexao();
try {
PreparedStatement statement = this.conexao.getConexao().prepareStatement(SQLINSERIR, Statement.RETURN_GENERATED_KEYS);
statement.setString(1, descricao.getSituacao());
statement.setInt(2, descricao.getNumero_paginas());
statement.setString(3, descricao.getTamanho());
statement.setLong(4, descricao.getId_livros());
statement.executeUpdate();
ResultSet rs = statement.getGeneratedKeys();
if(rs.next()) {
descricao.setId_descricao(rs.getLong(1));
}
JOptionPane.showMessageDialog(null, "executou corretamente");
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "nao executou corretamente");
e.printStackTrace();
} finally {
this.conexao.fecharConexao();
}
return descricao;
}
public void alterar(Descricao descricao){
this.conexao.getConexao();
try {
PreparedStatement ps = this.conexao.getConexao().prepareStatement(SQLALTERAR, Statement.RETURN_GENERATED_KEYS);
ps.setString(1, descricao.getSituacao());
ps.setInt(2, descricao.getNumero_paginas());
ps.setString(3, descricao.getTamanho());
ps.setLong(4, descricao.getId_livros());
ps.setLong(5, descricao.getId_descricao());
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "executou corretamente");
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "nao executou corretamente");
e.printStackTrace();
} finally {
this.conexao.fecharConexao();
}
}
public void deletar(Descricao descricao) {
this.conexao.getConexao();
try {
PreparedStatement ps = this.conexao.getConexao().prepareStatement(SQLDELETAR, Statement.RETURN_GENERATED_KEYS);
ps.setLong(1, descricao.getId_descricao());
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "executou corretamente");
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "nao executou corretamente");
e.printStackTrace();
} finally {
this.conexao.fecharConexao();
}
}
public void buscar(Descricao descricao) {
this.conexao.getConexao();
try {
PreparedStatement ps = this.conexao.getConexao().prepareStatement(SQLBUSCAR, Statement.RETURN_GENERATED_KEYS);
ps.setLong(1, descricao.getId_descricao());
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "executou corretamente");
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "nao executou corretamente");
e.printStackTrace();
} finally {
this.conexao.fecharConexao();
}
}
public List<Descricao> buscarTodos(Descricao descricao) {
String sqlBuscarTodos = "SELECT * FROM emprestimos ";
this.conexao.getConexao();
List<Descricao> ListaDescricao = new ArrayList<Descricao>();
try {
PreparedStatement ps = this.conexao.getConexao().prepareStatement(sqlBuscarTodos);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
//livros = new Livros();
descricao.setId_descricao(rs.getLong("id_descricao"));
descricao.setSituacao(rs.getString("situação"));
descricao.setNumero_paginas(rs.getInt("numero_paginas"));
ListaDescricao.add(descricao);
}
} catch (SQLException e) {
e.printStackTrace();
}
return ListaDescricao;
}
public static void main(String[] args) {
Descricao desc = new Descricao();
desc.setNumero_paginas(100);
desc.setSituacao("disponivel");
desc.setTamanho("20");
DescricaoDAO descDAO = new DescricaoDAO();
descDAO.inserir(desc);
}
}
Fiz o teste que está no final do código que aponta o seguinte erro: " java.lang.NullPointerException" para as seguintes linhas do código:
PreparedStatement statement = this.conexao.getConexao().prepareStatement(SQLINSERIR, Statement.RETURN_GENERATED_KEYS);
e para a linha:
descDAO.inserir(desc);
Quem puder ajudar, desde já agradeço!!!