Buenas amigos!
Estou fazendo faculdade de desenvolvimento e analise de sistemas mas a faculdade ainda esta longe de me ensinar programaçao para web que é o que eu gosto, so vai ensinar daqui a 1 ano e como nao estou a fim de perder tempo ate lá brincando com algoritmos em c++ que criam funçoes para desenhar na tela =p, como nao estou a fim de perder tempo com isso comprei um livro que o foco dele é desenvolvimento em JSF mas 1.2 e ai comecei a desenvolver algo dificil para um iniciante: um sistema para imobiliarias!!! Gosto de desafios e sou bastante auto-didata pois aprendi com o livro e me interessei mais pelo desenvolvimento com JSF 2.0 que com o 1.2 aí pesquisei uma serie de tutoriais que ensinam coisas sobre desenvolvimento mvc com primefaces e agora estou trancado numa parte que considero ser idiotamente facil para voces mas pra mim é um problemao e gostaria de ajuda se possivel 
Fiz minha apresentaçao pois sou novo no forum e no mundo do desenvolvimento web.
O problema é o seguinte:
Tenho minha classe modelo dos clientes que é um Bean que recebe apenas gets e sets, e para essa classe tenho uma classe modelo que liga ao banco de dados chamada ClientesDAO e nela possuo metodos para salvar editar excluir e listar os clientes, esta classe por sua vez faz uma chamada a classe connectionfactory que é a classe que cria a conexao com o banco de dados(uso o postgresql), e por fim tenho as classes clientesController que liga a classe clientes com a clientesDAO e a classe ImobiliariaBean que é uma especie de managedBean onde todas as classes estao interligadas e posso chamalas na view home.xhtml.
as classes abaixo:
package Model;
import java.io.Serializable;
import java.util.Date;
/**
*
* @author Administrador
*/
public class Clientes implements Serializable {
private static final long serialVersionUID = 1L;
private int codigo;
private String nome;
private String nascimento;
private int idade;
private String telefone;
private String cpf;
private String rg;
private String cep;
private String endereco;
private String bairro;
private String cidade;
private String uf;
private String obs;
public String getNome() {
return nome;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNascimento() {
return nascimento;
}
public void setNascimento(String nascimento) {
this.nascimento = nascimento;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getRg() {
return rg;
}
public void setRg(String rg) {
this.rg = rg;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getUf() {
return uf;
}
public void setUf(String uf) {
this.uf = uf;
}
public String getObs() {
return obs;
}
public void setObs(String obs) {
this.obs = obs;
}
}
public class ClientesDAO {
private Connection conn;
public ClientesDAO() throws DAOException {
try {
this.conn = ConnectionFactory.getConnection();
} catch (Exception e) {
throw new DAOException("Erro: \n" + e.getMessage());
}
}
public void salvar(Clientes cliente) throws DAOException {
PreparedStatement ps = null;
Connection conn = null;
if (cliente == null)
throw new DAOException("O cliente nao pode ser salvo porque foi passado um valor nulo");
try {
String SQL = "INSERT INTO clientes (nome, data_nascimento, telefone, cpf, rg, endereco, bairro, cidade, uf, obs) values(?,?,?,?,?,?,?,?,?,?)";
conn = this.conn;
ps = conn.prepareStatement(SQL);
ps.setString(1, cliente.getNome());
ps.setString(2, cliente.getNascimento());
ps.setString(3, cliente.getTelefone());
ps.setString(4, cliente.getCpf());
ps.setString(5, cliente.getRg());
ps.setString(6, cliente.getEndereco());
ps.setString(7, cliente.getBairro());
ps.setString(8, cliente.getCidade());
ps.setString(9, cliente.getUf());
ps.setString(10, cliente.getObs());
ps.executeUpdate();
} catch (SQLException sqle) {
throw new DAOException("Erro ao inserir dados "
+ sqle.getMessage());
} finally {
ConnectionFactory.closeConnection(conn, ps);
}
}
public class ClientesController implements Serializable {
private static final long serialVersionUID = 1L;
private Clientes cliente;
public Clientes getCliente() {
return cliente;
}
public void createCliente() {
cliente = new Clientes();
}
public void addCliente(Clientes c) throws DAOException{
ClientesDAO cdao = new ClientesDAO();
if(c!=null){
cdao.salvar(c);
}
}
public void deleteCliente(Clientes c) throws DAOException{
ClientesDAO cdao = new ClientesDAO();
if(c!=null){
cdao.excluir(c);
}
}
public void editCliente(Clientes c) throws DAOException{
ClientesDAO cdao = new ClientesDAO();
if (c!=null){
cdao.atualizar(c);
}
}
}
public class ConnectionFactory {
public static Connection getConnection() throws DAOException{
try{
Class.forName("org.postgresql.Driver");
return DriverManager.getConnection("jdbc:postgresql://localhost:5432/imobiliaria","postgres","evildead");
}catch (Exception e){
throw new DAOException(e.getMessage());
}
}
public static void closeConnection(Connection conn, Statement stmt, ResultSet rs) throws DAOException{
close(conn,stmt,rs);
}
public static void closeConnection(Connection conn, Statement stmt) throws DAOException{
close(conn,stmt,null);
}
public static void closeConnection(Connection conn) throws DAOException{
close(conn,null,null);
}
private static void close(Connection conn, Statement stmt, ResultSet rs) throws DAOException{
try{
if(rs != null)
rs.close();
if(stmt != null )
stmt.close();
if(conn != null)
conn.close();
}catch(Exception e){
throw new DAOException(e.getMessage());
}
}
}
[code]
@ManagedBean
@SessionScoped
/**
*
-
@author Administrador
*/
public class ImobiliariaBean implements Serializable {
private static final long serialVersionUID = 1L;
public ClientesController clientecontrol = new ClientesController();public ClientesController getClientecontrol() {
return clientecontrol;
}[/code]
peço desculpa se o post esta ficando grande demais
aqui embaixo vai a ultima coisa que é a view:
<h:body>
<div id="body"/>
<div id="transparencia"/>
<div id="nav_auxiliar_clientes" onclick="deslocar_nav_button(1)" class="nav_auxiliar">
<p:commandButton id="clientes_nav_button" styleClass="nav_button" value="Clientes" style="left:40px;">
<div class="glare" style="left: 55px;"/>
</p:commandButton>
</div>
<div id="nav_auxiliar_imoveis" onclick="deslocar_nav_button(2)" class="nav_auxiliar" style="left:10px;">
<p:commandButton id="imoveis_nav_button" styleClass="nav_button" value="Imóveis" style="left:220px;">
<div class="glare" style="left: 235px;"/>
</p:commandButton>
</div>
<div id="nav_auxiliar_funcionarios" onclick="deslocar_nav_button(3)" class="nav_auxiliar" style="left:20px;">
<p:commandButton id="funcionarios_nav_button" styleClass="nav_button" value="Funcionários" style="left:400px;">
<div class="glare" style="left: 415px;"/>
</p:commandButton>
</div>
<div id="menu_clientes">
<form>
<p:commandButton action="#{imobiliariaBean.clientecontrol.createCliente()}" id="add_clientes" value="Add Clientes"/>
<p:commandButton id="lista_clientes" value="Listar Clientes"/>
</form>
</div>
<div id="painel_add_clientes">
<form>
<span style="position: absolute; top:50px; left: 20px; color: white;">Nome</span>
<input id="nome_cliente" class="input_text" style="top:40px; left: 100px;" value="#{imobiliariaBean.clientecontrol.cliente.nome}"/>
<span style="position: absolute; top:50px; left: 270px; color: white;">Nascimento</span>
<input id="nascimento_cliente" class="input_text" style="top:40px; left: 350px;" value="#{imobiliariaBean.clientecontrol.cliente.nascimento}"/>
<input id="telefone_cliente" class="input_text" style="top:90px; left: 100px;" value="#{imobiliariaBean.clientecontrol.cliente.telefone}"/>
<input id="cpf_cliente" class="input_text" style="top:90px; left: 350px;" value="#{imobiliariaBean.clientecontrol.cliente.cpf}"/>
<input id="rg_cliente" class="input_text" style="top:140px; left: 100px;" value="#{imobiliariaBean.clientecontrol.cliente.rg}"/>
<p:autoComplete styleClass="rua_selector" value="#{imobiliariaBean.clientecontrol.cliente.endereco}"
completeMethod="#{autoCompleteBean.complete}"/>
<p:autoComplete styleClass="cidade_selector" id="cidade_cliente" dropdown="true" value="#{imobiliariaBean.clientecontrol.cliente.cidade}"
completeMethod="#{autoCompleteBean.complete}" />
<p:autoComplete styleClass="bairro_selector" id="bairro_cliente" dropdown="true" value="#{imobiliariaBean.clientecontrol.cliente.bairro}"
completeMethod="#{autoCompleteBean.complete}" />
p:inputTextarea id="obs_cliente" value="#{imobiliariaBean.clientecontrol.cliente.obs}"/>
<div style="position: absolute; top: 70%;">
<p:commandButton action="#{imobiliariaBean.clientecontrol.addCliente(imobiliariaBean.clientecontrol.cliente)}" value="OK" style=" background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(41,184,229,1)), color-stop(68%,rgba(179,220,237,1)), color-stop(100%,rgba(188,224,238,1)));
-webkit-box-shadow: rgba(5, 170, 250, 0.5) 0px 10px 16px;"/>
</div>
</form>
</div>
<div id="c"/>
<div id="i"/>
<div id="f"/>
</h:body>
o comand button de id=“add_clientes” tem a action="#{imobiliariaBean.clientecontrol.createCliente()}" que faz uma nova instancia da classe Clientes.
o command button cuja action="#{imobiliariaBean.clientecontrol.addCliente(imobiliariaBean.clientecontrol.cliente)}" insere no banco de dados o cliente criado pelo clientecontrol.createCliente().
O erro é que ele salva o cliente no banco mas todos os campos ficam vazios, so o codigo que é um atributo auto_increment no mysql e serial no postgre que aparece, e so aparece porquenao depende de digitado para ser inserido.
Quanto a erros de console nada aparece ele so salva tudo como espaços em branco e ja era.
tenho 3 teorias:
O problema esta no cliente gerado que chega como um valor nulo
O problema esta no drive do postgre
O problema esta no
nao sei qual pode ser mas espero que possam me ajudar.
Abraços e obrigado desde ja =D