Estou tendo esse problema na hora de executar o TestaInsercaoEListagemComProduto, quando eu executo ele dá essa exceção java.sql.SQLSyntaxErrorException, eu entendi que o erro foi em algum codigo sql, mas eu não acho esse erro e já reassistir umas 3 vezes a aula para ver se eu fiz aluguma coisa errada mas ate onde eu vi não, quem pode me ajudar ficarei grato :)
- TestaInsercaoEListagemComProduto
package br.com.alura.jdbc;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import br.com.alura.jdbc.dao.ProdutoDAO;
import br.com.alura.jdbc.modelo.Produto;
public class TestaInsercaoEListagemComProduto {
    public static void main(String[] args) throws SQLException {
        Produto comoda = new Produto("Cômoda", "Cômoda vertical");
        try (Connection connection = new ConnectionFactory().recuperarConexao()) {
            ProdutoDAO produtoDao = new ProdutoDAO(connection);
            produtoDao.salvar(comoda);
            List<Produto> listaDeProdutos = produtoDao.listar();
            listaDeProdutos.stream().forEach(lp -> System.out.println(lp));
        }
        System.out.println(comoda);
    }
}
- ProdutoDAO
package br.com.alura.jdbc.dao;
import java.sql.Connection;
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 br.com.alura.jdbc.modelo.Produto;
public class ProdutoDAO {
    private Connection connection;
    public ProdutoDAO(Connection connection) {
        this.connection = connection;
    }
    public void salvar(Produto produto) throws SQLException {
        String sql = "INSERT INTO PRODUTO (nome, descricao) values (?, ?)";
        try(PreparedStatement pstm = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
            pstm.setString(1,produto.getNome());
            pstm.setString(2, produto.getDescricao());
            pstm.execute();
            try(ResultSet rst = pstm.getGeneratedKeys()) {
                while(rst.next()) {
                    produto.setId(rst.getInt(1));
                }
            }
        }
    }
    public List<Produto> listar() throws SQLException {
        List<Produto> produtos = new ArrayList<Produto>();
        String sql = "SELECT ID, NOME, DESCRICAO FROM PRODUTOS";
        try(PreparedStatement pstm = connection.prepareStatement(sql)) {
            pstm.execute();
            try(ResultSet rst = pstm.getResultSet()) {
                while (rst.next()) {
                    Produto produto = new Produto(rst.getInt(1), rst.getString(2), rst.getString(3));
                    produtos.add(produto);
                }
            }
        }
        return produtos;
    }
}
- Produto
package br.com.alura.jdbc.modelo;
public class Produto {
    private Integer id;
    private String nome;
    private String descricao;
    public Produto(String nome, String descricao) {
        super();
        this.nome = nome;
        this.descricao = descricao;
    }
    public Produto(Integer id, String nome, String descricao) {
        this.id = id;
        this.nome = nome;
        this.descricao = descricao;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getNome() {
        return nome;
    }
    public String getDescricao() {
        return descricao;
    }
    @Override
    public String toString() {
        return String.format("O produto é: %d, %s, %s", 
                this.id, this.nome, this.descricao);
    }
}
 
            