Claro!
Depois continuando o curso vi que existe a convenção de utilizar a solução DAO, mas a título de curiosidade e estudo, queria saber como essa solução se sairia. Agradeço desde já, João!
Interface DbActions
public interface DbActions {
static void insertProduto(Connection connection, 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));
}
}
}
System.out.println(produto);
}
static List<Produto> listarProduto(Connection connection) throws SQLException {
String sql = "SELECT * FROM PRODUTO";
List<Produto> produtos = new ArrayList<>();
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;
}
}
Classe Produto
public class Produto implements DbActions {
private Integer id;
private String nome;
private String descricao;
public Produto(String nome,String descricao) {
this.nome = nome;
this.descricao = descricao;
}
public Produto(Integer id, String nome, String descricao) {
this.nome = nome;
this.descricao = descricao;
this.id = id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return this.nome;
}
public String getDescricao() {
return this.descricao;
}
@Override
public String toString() {
return String.format("O produtocriado é: Id = %d, Nome: %s, Descrição: %s",
this.id, this.nome, this.descricao);
}
}