JSF e Primefaces. Inserir no banco de dados

Caros amigos, comecei agora a usar JSF e Primefaces e não sei fazer um simples INCLUIR no bd com ManagedBean.
Já vi muitos vídeos e tutoriais mas sem bd ou com bd + hibernate e eu não uso hibernate. Minha dúvida maior é com o ManagedBean.

Meu pojo Pais:

package classe.modelo.vo;

public class Pais {
	private int id;
    private String descricao;
    private String sigla;
    private String codigo;
    
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public String getSigla() {
		return sigla;
	}
	public void setSigla(String sigla) {
		this.sigla = sigla;
	}
	public String getCodigo() {
		return codigo;
	}
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}    
    
}

PaisDao:

package classe.modelo.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import classe.conexao.Conexao;
import classe.modelo.vo.Pais;

public class PaisDao {
	static Connection conexao;
	
	public PaisDao(){
    	conexao = Conexao.conectar();
    }
	
    public boolean inserir(Pais pais) throws SQLException{
    	try {
    		StringBuffer sql1 = new StringBuffer();
    		sql1.append("INSERT INTO pais (pais_id,pais_descricao,pais_sigla,pais_codigo) "
                + "VALUES (?, ?, ?, ?)");
    		PreparedStatement consulta1 = conexao.prepareStatement(sql1.toString());
    		consulta1.setInt(1, pais.getId());
    		consulta1.setString(2, pais.getDescricao());
    		consulta1.setString(3, pais.getCodigo());
    		consulta1.setString(4, pais.getSigla());
    		consulta1.execute();
    		
    		return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
    }
}

Meu formulário de cadastro.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
	  xmlns:h="http://java.sun.com/jsf/html"
	  xmlns:f="http://java.sun.com/jsf/core"
	  xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Cadastro de Paises</title>
<style> 
.ui-widget, 
.ui-widget .ui-widget { 
font-size: 12px !important; 
} 
</style> 
</h:head>
<h:body>
<ui:include src="menu.xhtml"/>
<br/>
<h:form>
<p:panel header="Cadastro de paises">
  <p:fieldset legend="Dados do País">
    <h:panelGrid columns="2" width="900">
      <h:column>
        <h:outputLabel value="Nome"/>
      </h:column>
      <h:column>
        <h:inputText id="descricao" size="40" value="#{paisBean.pais.descricao}"/>
      </h:column>
      <h:column>
        <h:outputLabel value="Sigla"/>
      </h:column>
      <h:column>
        <h:inputText id="sigla" size="10" value="#{paisBean.pais.sigla}"/>
      </h:column>
      <h:column>
        <h:outputLabel value="C&oacute;digo"/>
      </h:column>
      <h:column>
        <h:inputText id="codigo" size="10" value="#{paisBean.pais.codigo}"/>
      </h:column>
    </h:panelGrid>
  </p:fieldset>
</p:panel>
<p:separator/>
<p:commandButton id="salvar" value="Salvar" action="#{paisBean.inserir}"/>
</h:form>
</h:body>
</html>

E meu managedbean paisBean:

package classe.controle.Beans;

import java.sql.SQLException;
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import classe.modelo.dao.PaisDao;
import classe.modelo.vo.Pais;

@ManagedBean(name = "paisBean")
@SessionScoped
public class PaisBean {
	private static  Pais pais = new Pais();
	private ArrayList<Pais> lista;
	private PaisDao pdao = new PaisDao();
	public void setLista(ArrayList<Pais> lista) {
		this.lista = lista;
	}

	public ArrayList<Pais> getLista() {
		return lista;
	}

	public void setPais(Pais pais) {
		PaisBean.pais = pais;
	}

	public Pais getPais() {
		return pais;
	}

        //método inserir no bd
	public void inserir(String descricao, String sigla, String codigo){
                
		 pais.setDescricao(descricao);
		 pais.setSigla(sigla);
		 pais.setCodigo(codigo);
		 try {
			pdao.inserir(pais);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
}

Eu não sei como pegar os valores dos campos do formulário e setá-los para inserir no banco de dados.
Tentei deste modo mas sem sucesso.

Obrigado!

Também estou iniciando nesse framework mas pelo que observei no bean deveria constar os gets e os sets dos campos que estao no formulario.

Sugiro que voce de uma lida no tutorial de jsf que esta no site http://www.coreservlets.com/JSF-Tutorial/jsf2/

dá uma olhada nessas apostilas acredito que elas irão te ajudar.
http://www.k19.com.br/downloads/apostilas-java

Meu caro, um software de qualidade possui muito mais que JSF gravando dados no banco de dados.

Pra simplificar, vejo um software com as seguintes características

< JSF+Primefaces >
View - > Controle -> Camada de Negocio -> Camada de Persistencia
<------------------------------ Modelo --------------------------------->

JSF+BD, na minha opinião, é pular uma série de etapas da qual um sistema não pode sobreviver.

Espero que encontre a luz.

Usando hibernate as fica bem mais fácil… aconselho usar…
Aki site legal… (Com Hibernate )

No managedBean eu tenho que fazer get e set de tudo que eu usar?

Por exemplo tenho o pojo Pais:

package classe.modelo.vo;  
  
public class Pais {  
    private int id;  
    private String descricao;  
    private String sigla;  
    private String codigo;  
      
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getDescricao() {  
        return descricao;  
    }  
    public void setDescricao(String descricao) {  
        this.descricao = descricao;  
    }  
    public String getSigla() {  
        return sigla;  
    }  
    public void setSigla(String sigla) {  
        this.sigla = sigla;  
    }  
    public String getCodigo() {  
        return codigo;  
    }  
    public void setCodigo(String codigo) {  
        this.codigo = codigo;  
    }      
      
} 

Para setar os atributos desta classe no managedBean PaisBean tenho que fazer o gets e sets novamente?

paisBean:

package classe.controle.Beans;  
  
import java.sql.SQLException;  
import java.util.ArrayList;  
import javax.faces.bean.ManagedBean;  
import javax.faces.bean.SessionScoped;  
  
import classe.modelo.dao.PaisDao;  
import classe.modelo.vo.Pais;  
  
@ManagedBean(name = "paisBean")  
@SessionScoped  
public class PaisBean {  
    private int id;  
    private String descricao;  
    private String sigla;  
    private String codigo;
    private static  Pais pais = new Pais();
    private ArrayList<Pais> lista;  
    private PaisDao pdao = new PaisDao();   
      
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getDescricao() {  
        return descricao;  
    }  
    public void setDescricao(String descricao) {  
        this.descricao = descricao;  
    }  
    public String getSigla() {  
        return sigla;  
    }  
    public void setSigla(String sigla) {  
        this.sigla = sigla;  
    }  
    public String getCodigo() {  
        return codigo;  
    }  
    public void setCodigo(String codigo) {  
        this.codigo = codigo;  
    }      
       
    public void setLista(ArrayList<Pais> lista) {  
        this.lista = lista;  
    }  
  
    public ArrayList<Pais> getLista() {  
        return lista;  
    }  
  
    public void setPais(Pais pais) {  
        PaisBean.pais = pais;  
    }  
  
    public Pais getPais() {  
        return pais;  
    }  
  
        //método inserir no bd  
    public void inserir(){  
                  
         pais.setDescricao(descricao);  
         pais.setSigla(sigla);  
         pais.setCodigo(codigo);  
         try {  
            pdao.inserir(pais);  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }  
    }  
      
}

Ou na verdade tenho que gerar gets e set dos campos do formulário?

Alguém me dê uma luz, por favor! :frowning: