Ajuda com Java Web =)

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:

Posta o erro

Postei o erro no primeiro post; ;-D

Você falou que era SQLException kk

Eu não conheço Spring, mas ve se te ajuda:

JOptionPane.showMessageDialog

O problema tá aí acima, você não pode usar JOptionPane numa aplicação web. Lembre que o código está rodando no servidor, tudo que vai pro usuário é HTML, CSS e JavaScript.

1 curtida