Galera eu sou muito novo em java, faz apentas 1 mes e meio eu tenho um classe que Dao pra produto que faz um list dessa forma:
public class ProdutoDao extends GenericDao {
public List<Produto> findProdutos() throws SQLException{
List<Produto> produtos = new ArrayList<Produto>();
String select = "select * from produto order by id";
PreparedStatement stmt =
getConnection().prepareStatement(select);
ResultSet rs = stmt.executeQuery();
while(rs.next()){
Produto produto = new Produto();
produto.setId(rs.getLong("id"));
produto.setDate(rs.getDate("dtCadastro"));
produto.setUnidade(rs.getString("unidade"));
produto.setNome(rs.getString("nome"));
produto.setPrecoCusto(rs.getFloat("precoCusto"));
produto.setLucro(rs.getFloat("lucro"));
produto.setPrecoVenda(rs.getFloat("precoVenda"));
produto.setEstoque(rs.getString("estoque"));
produtos.add(produto);
}
rs.close();
stmt.close();
return produtos;
}
}
Como crio em uma classe controller que busque apenas o campo nome?
Como colocar na classe principal para que imprima todos os dados da coluna NOME?
Alguem pode me ajudar?
Boa tarde amigão, beleza ? Cara da forma que está sua query aí select * from, não vai filtrar apenas por nome e sim todos os campos da sua tabela, se você está usando JSF e querer imprimir essa lista em um DataTable, é simples é só instanciar o objeto em seu ManagedBean, daí passar no JSF a sua lista. Acho que este tópico pode te ajudar
public class ProdutoDao extends GenericDao {
public static List<Produto> getProduto(){
List<Produto> produtos = new ArrayList<Produto>();
Connection con = null;
try{
con = conexao.getConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select nome from produto");
while (rs.next()) {
Produto p = new Produto();
p.setNome(rs.getString("nome"));
}
}catch(Exception e){
// System.out.print("Não foi possível fazer a conexão com o banco");
e.printStackTrace();
} return produtos;
}
na tela principal:
public List<Produto> getLista() {
ProdutoDao dao = new ProdutoDao();
this.lista = dao.getProduto();
for(Produto p : this.lista){
this.lista.add(p);
System.out.println(p.getNome());
} return lista;
}
public void setLista(List<Produto> lista) {
this.lista = lista;
}
num botao de assao eu coloquei isso mas nao imprime nada