Olá, pessoal!
Estou desenvolvendo um projeto Java Web para meu curso onde os dados são gravados no banco de dados e posteriormente listados em uma página JSP.
Os dados estão sendo inseridos no banco de dados corretamente, porém, após a execução do método Cadastrar está dando uma HeadlessException e interrompendo a execução.
Mesmo depurando o projeto não estou conseguindo identificar o que está gerando essa exceção.
Para quem puder me ajudar, seguem os códigos das classes Controller e Crud:
LivrosController
import com.livros.modelo.Livros;
import java.sql.SQLException;
import java.util.ArrayList;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class LivrosController {
@RequestMapping("/testar")
public String listar (Model model) throws SQLException {
LivrosCRUD livrosCRUD = new LivrosCRUD();
Livros novoLivro = new Livros();
novoLivro.setTitulo("Título do Livro");
novoLivro.setAnolancamento(2018);
novoLivro.setEstadoconservacao(1);
novoLivro.setDisponivel(1);
livrosCRUD.cadastrar(novoLivro);
ArrayList<Livros> livrosCadastrados = livrosCRUD.listaTodos();
model.addAttribute("listaLivros", livrosCadastrados);
return "testebd";
}
}
LivrosCrud
import java.awt.HeadlessException;
import com.livros.modelo.Livros;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class LivrosCRUD {
ConexaoBD conexaobd = new ConexaoBD();
Livros livros = new Livros();
//Método que insere os dados digitados no formulário no Banco de dados.
public void cadastrar(Livros livros) {
String sql = "insert into livros (titulo, anolancamento, estadoconservacao, disponivel) values (?, ?, ?, ?)";
try {
PreparedStatement ps = conexaobd.abrirConexao().prepareStatement(sql);
ps.setString(1, livros.getTitulo());
ps.setInt(2, livros.getAnolancamento());
ps.setInt(3, livros.getEstadoconservacao());
ps.setInt(4, livros.getDisponivel());
ps.execute();
JOptionPane.showMessageDialog(null, "Dados cadastrados com sucesso!");
} catch (HeadlessException | SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao cadastrar os dados.");
}
}
//Método que lista os registros do banco de dados.
public ArrayList<Livros> listaTodos() {
String sql = "select * from livros";
ArrayList<Livros> dados = null;
conexaobd.abrirConexao();
conexaobd.executaSql(sql);
try {
conexaobd.rs.first();
do {
//Prenchendo as linhas da tabela.
Livros lv = new Livros();
lv.setId(conexaobd.rs.getInt("id"));
lv.setTitulo(conexaobd.rs.getString("titulo"));
lv.setAnolancamento(conexaobd.rs.getInt("anolancamento"));
lv.setEstadoconservacao(conexaobd.rs.getInt("estadoconservacao"));
lv.setDisponivel(conexaobd.rs.getInt("disponivel"));
dados.add(lv);
} while (conexaobd.rs.next());
} catch (SQLException ex) {
}
return dados;
}
EDIT: Segue o erro que dá ao abrir a página JSP: