Problema Desenvolvimento JSF

Bom dia amigos estou com problemas nesse formulario de cadastro esta listando tudo direito somente não esta inserindo os dados no Banco se alguem conseguir me ajudar agradeço

[code]<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

<%@taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>
<%@page contentType=“text/html” pageEncoding=“UTF-8”%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
http://www.w3.org/TR/html4/loose.dtd”>

<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8”>
<title>Restaurante Paiol - Estoque</title>
</head>
<link rel=“shortcut icon” href=“paiol.ico” />
<body background=“fundo1.png”>

    &lt;div align="center"&gt;
        &lt;h1&gt;RESTAURANTE PAIOL&lt;/h1&gt;
        &lt;fieldset&gt;
            &lt;legend&gt;Cadastro Estoque&lt;/legend&gt;
    &lt;f:view&gt;
    &lt;h:form&gt;
        <p>Data Fabricação:&lt;h:inputText styleClass="campoTexto" id="dtFabric"
                             value="#{entraProduto.cdto.dtFabric}"&gt;
                        &lt;f:convertDateTime type="date"
                                           pattern="dd/mm/yyyy" /&gt;&lt;/h:inputText&gt;dd/mm/aaaa</p>
        <p>Data Validade: &lt;h:inputText styleClass="campoTexto" id="dtVal"
                     value="#{entraProduto.cdto.dtVal}"&gt;
                        &lt;f:convertDateTime type="date"
                       pattern="dd/mm/yyyy" /&gt;&lt;/h:inputText&gt;dd/mm/aaaa</p>
        
        <p>Quantidade: &lt;h:inputText id="quantidade" value="#{entraProduto.cdto.quantidade}" size="6" required="true"/&gt;</p>

        <p>Freezer: &lt;h:selectOneMenu value="#{entraProduto.freezer}"&gt;
                &lt;f:selectItems value= "#{freezerBean.todosFreezers}" var="conta" itemValue="#{conta.Nfreezer}" itemLabel="#{conta.Nfreezer}"/&gt;
                         &lt;/h:selectOneMenu&gt;
           Pratos: &lt;h:selectOneMenu value="#{entraProduto.prato}"&gt;
               &lt;f:selectItems value="#{cadPratoBean.todosPratos}" var="conta" itemValue="#{conta.id}" itemLabel="#{conta.nome}"/&gt;
            &lt;/h:selectOneMenu&gt;</p>

        <p>&lt;h:commandButton action="#{entraProduto.acao}" value="Enviar" /&gt;</p>

    &lt;/h:form&gt;
    &lt;/f:view&gt;
        &lt;/fieldset&gt;
        &lt;/div&gt;

&lt;/body&gt;

</html>
[/code]

Então pq vc não coloca o código do teu DAO???

Fala edvilson,

como está o método do “acao” no seu ManagedBean?

Você colocou uma pagina jsf e perguntou sobre inserção no banco?
Qual sua duvida?
Você consegue executar o metodo que está no botão “entraProduto.acao”?

edvilson, você precisa postar seus back beans e testar o insert com um test unitário. Por exemplo, cria um método main e faz o insert do pojo. Está usando hibernate ? Se sim, mostre o mapeamento das classes.
Apenas com a view não tem como saber por que não está cadastrando.

coloca a sua classe DAO e o managed bean “entraProduto” para que possamos ajudá-lo, como os amigos pediram.

EntraProdutoBean

[code]package BEAN;

import DAO.EntrProdutoDAO;
import DTO.EntrProdutoDTO;
import DTO.FreezerDTO;
import DTO.cadPratoDTO;
import Facade.EntrProdutoFacade;
import java.io.Serializable;
import java.lang.reflect.Array;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Vector;
import javax.faces.model.SelectItem;

public class EntrProdutoBean implements Serializable{

public EntrProdutoDTO cdto;
public EntrProdutoDAO cdtoDAO;
EntrProdutoFacade EntrProdutoFacade;
FreezerDTO freezerDTO = new FreezerDTO();
cadPratoDTO pratoDTO = new cadPratoDTO();
SelectItem prato;
SelectItem freezer;

public SelectItem getFreezer() {
    return freezer;
}

public void setFreezer(SelectItem freezer) {
    this.freezer = freezer;
}

public EntrProdutoDTO getCdto() {
    return cdto;
}

public SelectItem getPrato() {
    return prato;
}

public void setPrato(SelectItem prato) {
    this.prato = prato;
}

public cadPratoDTO getPratoDTO() {
    return pratoDTO;
}

public void setPratoDTO(cadPratoDTO pratoDTO) {
    this.pratoDTO = pratoDTO;
}

public FreezerDTO getFreezerDTO() {
    return freezerDTO;
}

public void setFreezerDTO(FreezerDTO freezerDTO) {
    this.freezerDTO = freezerDTO;
}

public void setCdto(EntrProdutoDTO cdto) {
    this.cdto = cdto;
}

public EntrProdutoBean() {
    cdto = new EntrProdutoDTO();
    cdtoDAO = new EntrProdutoDAO();
    EntrProdutoFacade = new EntrProdutoFacade();

}

public void salvaEntrProduto() {
    EntrProdutoFacade.salvaEntrProduto(cdto);
}

public boolean buscaEntrProduto(int n) throws SQLException {
    cdto = EntrProdutoFacade.buscaEntrProduto(n);
    if ( cdto != null) {
        return true;
    } else {
        return false;
    }
}

public void excluiEntrProduto() throws SQLException  {
    EntrProdutoFacade.excluiEntrProduto(cdto);

}

public Vector MontaFreezer() throws SQLException {
    return EntrProdutoFacade.MontaFreezer();
}

public int MontaPilha(int idFInt) throws SQLException {
    return EntrProdutoFacade.MontaPilha(idFInt);
}

public int QtDisponivelPilha(int idFreezer, int idPilha) {
    return EntrProdutoFacade.QtDisponivelPilha(idFreezer, idPilha);
}

public List MontaPratos() {
    return EntrProdutoFacade.MontaPratos();
}
public String acao(){
    cdto.setIdPrato(cdto.getIdPrato());
    cdto.setnFreezer(cdto.getnFreezer());
    cdtoDAO.salvaEntrProduto(cdto);
    return "ok";
}

}[/code]

EntraProdutoDAO

[code]package DAO;

import DTO.EntrProdutoDTO;
import DTO.cadPratoDTO;
import java.sql.Array;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import javax.swing.JOptionPane;

public class EntrProdutoDAO {

String url;
Connection conn;
Statement stmt;
ResultSet rs;

public EntrProdutoDAO() {
    //url = "jdbc:mysql://" + host + "/" + bd;
    url = "jdbc:mysql://localhost/restaurante";

    try {
        Class.forName("com.mysql.jdbc.Driver"); //MYSQL

        conn = DriverManager.getConnection(url, "root", "");
        stmt = conn.createStatement();
    } catch (SQLException e) {
        System.out.println("Error 1: " + e);
    } catch (ClassNotFoundException e) {
        System.out.println("Error 2: " + e);
    }
}

public void salvaEntrProduto(EntrProdutoDTO cDTO)    {
    try {
        String query = "INSERT INTO estoque (numeroFreezer, idPrato, Quantidade, dtFabric, DtValidade) VALUES ('" +
                        cDTO.getnFreezer() + "','" +
                        cDTO.getIdPrato() + "','" +
                        cDTO.getQuantidade() + "','" +
                        cDTO.getDtFabric() + "','" +
                        cDTO.getDtVal() +
                        "')";

        stmt.executeUpdate(query);
    } catch (SQLException e) {
        System.out.println("ERROR: " + e);
    }
}


public void excuiEntrProduto(int cod) throws SQLException
{
String query = "DELETE * FROM estoque WHERE idPrato = '"+ cod + "'";
stmt.executeUpdate(query);

}


public List&lt;EntrProdutoDTO&gt; getTodosEntrProdutos() {
    List l = new ArrayList();
    EntrProdutoDTO cDTO = new EntrProdutoDTO();
    try {
        String query = "SELECT * FROM estoque";
        rs = stmt.executeQuery(query);
        while (rs.next()) {
            cDTO.setnFreezer(rs.getInt("numeroFreezer"));
            cDTO.setIdPrato(rs.getInt("idPrato"));
            cDTO.setQuantidade(rs.getInt("quantidade"));
            cDTO.setDtFabric(rs.getString("dtFabric"));
            cDTO.setDtVal(rs.getString("dtValidade"));
            l.add(cDTO);
        }



    } catch (SQLException e) {
        System.out.println("ERROR: " + e);
    }
    return l;
}

public EntrProdutoDTO buscaPorNumero(int n) throws SQLException {
    EntrProdutoDTO cDTO = new EntrProdutoDTO();
    String query = "SELECT * FROM EntrProduto WHERE  numero = '" + n + "'";
    rs = stmt.executeQuery(query);
    rs.next();

    if (rs != null) {
    try{
        cDTO.setnFreezer(rs.getInt("numeroFreezer"));
        cDTO.setIdPrato(rs.getInt("idPrato"));
        cDTO.setQuantidade(rs.getInt("quantidade"));
        cDTO.setDtFabric(rs.getString("dtFabric"));
        cDTO.setDtVal(rs.getString("dtValidade"));
    }catch(SQLException e){
       JOptionPane.showMessageDialog(null, "NOme nao encontrado");
    }
        return cDTO;
    }
    else
    {
      return null;
    }



}

public Vector MontaFreezer()  throws SQLException {
    Vector combo = new Vector();
   try{
      ResultSet rs;
      String query = "SELECT numero FROM freezer";
      rs = stmt.executeQuery(query);
      while (rs.next()){           
           int n = rs.getInt("numero");
           combo.add(n);
      }
   }
   catch(SQLException e){
      System.out.println("Erro ao listar Freezers." + e.getMessage());
   }
   return combo;
}

public int MontaPilha(int n) throws SQLException {
int combo = 0;
try{
ResultSet rs;
String query = "SELECT numero, Qtpilhas FROM freezer WHERE numero = " + n;
rs = stmt.executeQuery(query);
while (rs.next()){
combo = rs.getInt(“Qtpilhas”);
}
}
catch(SQLException e){
System.out.println(“Erro ao listar Pilhas.” + e.getMessage());
}
return combo;
}

public int QtDisponivelPilha(int nfreezer, int nPilha){
int qtdReg = 0;
int quantidade = 0;
try{
ResultSet rs;
String query = "SELECT numeroFreezer quantidade FROM estoque WHERE numeroFreezer = " + nfreezer + " and idPilha = " + nPilha;
rs = stmt.executeQuery(query);
while (rs.next()){
quantidade = quantidade + rs.getInt(“quantidade”);
qtdReg++;
}
}
catch(SQLException e){
System.out.println(“Erro ao listar cargos.” + e.getMessage());
}
return 10 - quantidade;
}

public List<cadPratoDTO> MontaPratos(){
int qtdReg = 0;
int quantidade = 0;
List Lpratos = new ArrayList();

   cadPratoDTO cDTO = new cadPratoDTO();
   try{
      ResultSet rs;
      String query = "SELECT id, nome, descricao, preco FROM cadprato";
      rs = stmt.executeQuery(query);

       while (rs.next()) {
            cDTO.setId(rs.getInt("id"));
            cDTO.setNome(rs.getString("nome"));
            cDTO.setNome(rs.getString("descricao"));
            cDTO.setPreco(rs.getDouble("preco"));
            Lpratos.add(new cadPratoDTO(rs.getInt("id"), rs.getString("nome"), rs.getString("descricao"), rs.getDouble("preco")));
        }

   }
   catch(SQLException e){
      System.out.println("Erro ao listar cargos." + e.getMessage());
   }

    return Lpratos;

}

public void fechaConexao() {
    try {
        stmt.close();
        conn.close();
    } catch (SQLException e) {
    }
}

}
[/code]

Ele tao executando o entraProduto.acao

    public String acao(){
        cdto.setIdPrato(cdto.getIdPrato()); //codigo redundate tire essa linha
        cdto.setnFreezer(cdto.getnFreezer()); //codigo redundate tire essa linha
        cdtoDAO.salvaEntrProduto(cdto);
        return "ok";
    }
    
}


//EntraProdutoDAO


    public void salvaEntrProduto(EntrProdutoDTO cDTO)    {
        try {
            //passe o id do estoque na sua sql
            String query = "INSERT INTO estoque (ID,numeroFreezer, idPrato, Quantidade, dtFabric, DtValidade) VALUES (null, " +
                            cDTO.getnFreezer() + "','" +
                            cDTO.getIdPrato() + "','" +
                            cDTO.getQuantidade() + "','" +
                            cDTO.getDtFabric() + "','" +
                            cDTO.getDtVal() +
                            "')";

            stmt.executeUpdate(query);
        } catch (SQLException e) {
            System.out.println("ERROR: " + e);
        }
    }


Uma dica para ficar mais melhor o seu código utilize PrepareStatement ao invés de Statement.

Não vi nada de errado, só acho que não precisa disso:

Mas isso não influenciaria em nada, ta dando algum erro?

[quote=Igor Gabriel]Não vi nada de errado, só acho que não precisa disso:

Mas isso não influenciaria em nada, ta dando algum erro?[/quote]

A mesma pergunta que eu estava indo fazer.

Tem algum erro?

Não insere no banco e GlassFish retorna isso:

INFO: Loading application RestaurantePaiol at /RestaurantePaiol INFO: RestaurantePaiol was successfully deployed in 1.587 milliseconds. INFO: Inicializando Mojarra 2.0.2 (FCS b10) para o contexto '/RestaurantePaiol' INFO: Monitoring jndi:/server/RestaurantePaiol/WEB-INF/faces-config.xml for modifications INFO: Loading application RestaurantePaiol at /RestaurantePaiol INFO: RestaurantePaiol was successfully deployed in 664 milliseconds. INFO: Inicializando Mojarra 2.0.2 (FCS b10) para o contexto '/RestaurantePaiol' INFO: Monitoring jndi:/server/RestaurantePaiol/WEB-INF/faces-config.xml for modifications INFO: Loading application RestaurantePaiol at /RestaurantePaiol INFO: RestaurantePaiol was successfully deployed in 16.639 milliseconds. INFO: Inicializando Mojarra 2.0.2 (FCS b10) para o contexto '/RestaurantePaiol' INFO: Monitoring jndi:/server/RestaurantePaiol/WEB-INF/faces-config.xml for modifications INFO: Loading application RestaurantePaiol at /RestaurantePaiol INFO: RestaurantePaiol was successfully deployed in 1.310 milliseconds.

[quote=edvilson]Não insere no banco e GlassFish retorna isso:

INFO: Loading application RestaurantePaiol at /RestaurantePaiol INFO: RestaurantePaiol was successfully deployed in 1.587 milliseconds. INFO: Inicializando Mojarra 2.0.2 (FCS b10) para o contexto '/RestaurantePaiol' INFO: Monitoring jndi:/server/RestaurantePaiol/WEB-INF/faces-config.xml for modifications INFO: Loading application RestaurantePaiol at /RestaurantePaiol INFO: RestaurantePaiol was successfully deployed in 664 milliseconds. INFO: Inicializando Mojarra 2.0.2 (FCS b10) para o contexto '/RestaurantePaiol' INFO: Monitoring jndi:/server/RestaurantePaiol/WEB-INF/faces-config.xml for modifications INFO: Loading application RestaurantePaiol at /RestaurantePaiol INFO: RestaurantePaiol was successfully deployed in 16.639 milliseconds. INFO: Inicializando Mojarra 2.0.2 (FCS b10) para o contexto '/RestaurantePaiol' INFO: Monitoring jndi:/server/RestaurantePaiol/WEB-INF/faces-config.xml for modifications INFO: Loading application RestaurantePaiol at /RestaurantePaiol INFO: RestaurantePaiol was successfully deployed in 1.310 milliseconds. [/quote]

Esse log não tem nada a ver com o seu erro, é o deploy de sua aplicação no servidor

troque 
catch (SQLException e) {  
            System.out.println("ERROR: " + e);  
        }  
por
     catch (SQLException e) {  
         e.printStackTrace();
        }  

troque catch (SQLException e) { System.out.println("ERROR: " + e); } por catch (SQLException e) { e.printStackTrace(); }

troco la entraprodutoDAO né?

Mas não é por isso que ta dando erro não sei poq não insere no banco ja pensei analisei e não encontro o erro

[quote=edvilson]troque catch (SQLException e) { System.out.println("ERROR: " + e); } por catch (SQLException e) { e.printStackTrace(); }

troco la entraprodutoDAO né?[/quote]

Eu fiz isso para mostrar no console o erro que está ocorrendo na sua aplicação e não para corrigir!!!

A sim entendo se tu quiseres te mando o projeto com sql pra veres não sei poq nao insere no banco

Tu já deu uma debugada no método “salvaEntrProduto” ?

  • vê se o objeto no parâmetro do método está chegando nulo ou não;
  • vê se está passando pelo “stmt.executeUpdate(query);”
  • testa a query no SGBD pra ver se não tem nada mal estruturado no seu banco;

Caracas ja fiz não encontro o erro

edvilson, vc ja tentou “debugar” pra ver o q ta acontecendo?
só assim vc realmente irá descobrir o erro.

Executei o debug e não achei o erro não sei que fazer