O eclipse acusa um erro , diz que não se pode fazer uma referencia static para um um metodo não static
package br.com.alura.jdbc.produto;
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;
import dao.ProdutoDAO;
public class TesteInsercaoProduto {
public static void main(String[] args) throws SQLException {
try(Connection connection = new ConnectionFactory().novaConexao()){
Produto comoda = new Produto("comoda", "comoda antiga");
ProdutoDAO pd = new ProdutoDAO(connection);
ProdutoDAO.salvar(comoda);
ProdutoDAO.listar();
}
}
}
ackage 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.produto.ConnectionFactory; import br.com.alura.jdbc.produto.Produto;
public class ProdutoDAO {
//DAO - Data Access Object é uma classe de acesso ao banco de dados para não precisarmos ficar
//digitando o mesmo código todavez que for inserir
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 ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
ps.setString(1, produto.getNome());
ps.setString(2, produto.getDescricao());
ps.execute();
try (ResultSet rs = ps.getGeneratedKeys()) {
while (rs.next()) {
produto.setId(rs.getInt(1));
}
}
}
}
public List<Produto> listar() throws SQLException{
List<Produto> produtos = new ArrayList<Produto>();
String sql = "SELECT ID, NOME, DESCRICAO FROM PRODUTO";
try(PreparedStatement ps = connection.prepareStatement(sql)){
ps.execute();
try(ResultSet rs = ps.getResultSet()){
while(rs.next()) {
Produto produto = new Produto(rs.getInt(1), rs.getString(2), rs.getString(3));
produtos.add(produto);
}
}
}
return produtos;
}
}