Boa tarde, eu estou começando a estudar Java. Estou seguindo um curso online, mas estou com um erro e não consigo prosseguir. Gostaria de compartilhar minha dificuldade com vcs para ver se alguém pode me ajudar.
Meu projeto até então, tem duas tabelas, mas a tabela que estou mexendo atualmente e tentando listar os dados dela na tela, é fornecedores. Não dá nenhum erro. O código exibe a msg de que não foram encontrados nenhum registro. Meu código está igual ao do professor, mas como o curso foi barato e on line, o professor não está com boa vontade para me ajudar.
Se alguem puder me ajudar, seguem abaixo meus arquivos:
fornecedores.xhtml
<ui:composition xmlns="link"
xmlns:h="link"
xmlns:f="link"
xmlns:p="link"
xmlns:ui="link"
template=“link”>
<ui:define name="menu">
<ui:include src="/includes/menu.xhtml" />
<!-- Puxando o menu p/ a página principal -->
</ui:define>
<ui:define name="fornecedores">
<h:form>
<p:dataTable emptyMessage="Nenhum registro encontrado." value="#{mbfornecedores.itens}" var="item">
<p:column headerText="Código do Fornecedor">
<h:outputText value="#{item.codfornecedor}" />
</p:column>
<p:column headerText="Nome do Fornecedor">
<h:outputText value="#{item.descricao}" />
</p:column>
</p:dataTable>
</h:form>
</ui:define>
</ui:composition>
Classe FornecedoresBean
package br.com.farmacia.bean;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.ListDataModel;
import br.com.farmacia.DAO.FornecedoresDAO;
import br.com.farmacia.domain.Fornecedores;
@ManagedBean(name=“mbfornecedores”)
@ViewScoped
public class FornecedoresBean {
private ListDataModel itens;
//get e set
public ListDataModel<Fornecedores> getItens() {
return itens;
}
public void setItens(ListDataModel<Fornecedores> itens) {
this.itens = itens;
}
//o comando @PostConstruct serve para informar ao sistema, que assim que eu entrar na pagina (a pagina for iniciada, o evento
//seja executado, sem q haja a necessidade de um clique
@PostConstruct
public void prepararPesquisa() {
try {
FornecedoresDAO fdao = new FornecedoresDAO();
ArrayList<Fornecedores>lista = fdao.listar();
itens = new ListDataModel<Fornecedores>(lista);
//estou convertendo minha variavel LISTA em DATAMODEL, pois meu array
//pois meu array principal estah assim. (estou instanciando minha variavel e dizendo q ela eh do tipo ListDataModel
//coloco lista entre parenteses pq estou colocando itens dentro dela
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
FornecedoresDao
package br.com.farmacia.DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import br.com.farmacia.domain.Fornecedores;
import br.com.farmacia.factory.ConexaoFactory;
public class FornecedoresDAO {
public void salvar(Fornecedores f) throws SQLException{
StringBuilder sql = new StringBuilder();
sql.append("INSERT INTO fornecedores ");
sql.append("(descricao) ");
sql.append("VALUES (?)");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setString(1, f.getDescricao());
comando.executeUpdate();
}
public void excluir (Fornecedores f) throws SQLException{
StringBuilder sql = new StringBuilder();
sql.append("DELETE FROM fornecedores ");
sql.append("WHERE codfornecedor = ? ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setInt(1, f.getCodFornecedor());
comando.executeUpdate();
}
public void editar(Fornecedores f) throws SQLException{
StringBuilder sql = new StringBuilder();
sql.append("UPDATE fornecedores ");
sql.append("SET descricao = ? ");
sql.append("WHERE codfornecedor = ? ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setString(1, f.getDescricao());
comando.setInt(2, f.getCodFornecedor());
comando.executeUpdate();
}
public Fornecedores buscaPorCodigo(Fornecedores f) throws SQLException{
StringBuilder sql = new StringBuilder();
sql.append("SELECT codfornecedor, descricao ");
sql.append("FROM fornecedores ");
sql.append("WHERE codfornecedor = ? ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setInt(1, f.getCodFornecedor());
ResultSet resultado = comando.executeQuery();
Fornecedores retorno = null;
if (resultado.next()) {
retorno = new Fornecedores();
retorno.setCodFornecedor(resultado.getInt("codfornecedor"));
retorno.setDescricao(resultado.getString("descricao"));
}
return retorno;
}
public ArrayList<Fornecedores>listar() throws SQLException{
StringBuilder sql = new StringBuilder();
sql.append("SELECT codfornecedor, descricao ");
sql.append("FROM fornecedores ");
sql.append("ORDER BY descricao ASC ");
Connection conn = ConexaoFactory.conectar();
PreparedStatement comando = conn.prepareStatement(sql.toString());
ResultSet resultado = comando.executeQuery();
ArrayList<Fornecedores>lista = new ArrayList<Fornecedores>();
while(resultado.next()) {
Fornecedores f = new Fornecedores();
f.setCodFornecedor(resultado.getInt("codfornecedor"));
f.setDescricao(resultado.getString("descricao"));
lista.add(f);
}
return lista;
}
public ArrayList <Fornecedores> buscarPorDescricao(Fornecedores f) throws SQLException{
StringBuilder sql = new StringBuilder();
sql.append("SELECT codfornecedor, descricao ");
sql.append("FROM fornecedores ");
sql.append("WHERE descricao LIKE ? "); //toda vez que eu utilizar o like, la na exibicao devo colocar "%"
sql.append("ORDER BY descricao ASC ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setString(1, "%" + f.getDescricao() + "%");
ResultSet resultado = comando.executeQuery();
ArrayList <Fornecedores> lista = new ArrayList <Fornecedores>();
while(resultado.next()) {
Fornecedores item = new Fornecedores();
item.setCodFornecedor(resultado.getInt("codfornecedor"));
item.setDescricao(resultado.getString("descricao"));
lista.add(item);
}
return lista;
}
public static void main(String[] args) {/*
Fornecedores f1 = new Fornecedores();
f1.setDescricao("Fornecedor Paulista");
Fornecedores f2 = new Fornecedores();
f2.setDescricao("Fornecedor Portugues");
FornecedoresDAO fdao = new FornecedoresDAO();
try {
fdao.salvar(f1);
fdao.salvar(f2);
System.out.println("Dados salvos com sucesso!!!");
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println("Dados não foram salvos. Verifique o ocorrido.");
}
Fornecedores f1 = new Fornecedores();
f1.setCodFornecedor(2);
FornecedoresDAO fdao = new FornecedoresDAO();
try {
fdao.excluir(f1);
System.out.println("Dados deletados com sucesso!!!");
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println("Dados não foram deletados. Verifique o ocorrido.");
}
Fornecedores f1 = new Fornecedores();
f1.setCodFornecedor(1);
f1.setDescricao("Rodrigues");
FornecedoresDAO fdao = new FornecedoresDAO();
try {
fdao.editar(f1);
System.out.println("Dados editados com sucesso!!!");
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println("Dados não foram editados. Verifique o ocorrido.");
}
Fornecedores f1 = new Fornecedores();
f1.setCodFornecedor(3);
Fornecedores f2 = new Fornecedores();
f2.setCodFornecedor(10);
FornecedoresDAO fdao = new FornecedoresDAO();
try {
Fornecedores f3 = fdao.buscaPorCodigo(f1);
Fornecedores f4 = fdao.buscaPorCodigo(f2);
System.out.println("Resultado 1: " + f3);
System.out.println("Resultado 2: " + f4);
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println("Erro ao buscar. Verifique o ocorrido.");
}
FornecedoresDAO fdao = new FornecedoresDAO();
try {
ArrayList<Fornecedores> lista = fdao.listar();
for(Fornecedores f: lista) {
System.out.println("Resultado:" + f);
}
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println("Erro ao buscar. Verifique o ocorrido.");
}
Fornecedores f1 = new Fornecedores();
f1.setDescricao("Tes");
FornecedoresDAO fdao = new FornecedoresDAO();
try {
ArrayList<Fornecedores> lista = fdao.buscarPorDescricao(f1);
for(Fornecedores f: lista) {
System.out.println("Resultado:" + f);
}
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println("Erro ao buscar. Verifique o ocorrido.");
}
}
*/
FornecedoresDAO fdao = new FornecedoresDAO();
try {
ArrayList<Fornecedores> lista = fdao.listar();
for(Fornecedores f: lista) {
System.out.println("Resultado:" + f);
}
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println("Erro ao buscar. Verifique o ocorrido.");
}
}
}
Como sou nova aqui, se eu postei errado, me perdoem.
Espero que alguém possa me ajudar e desde já sou grata.
Muito obrigada.