Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

joaogil

cadastro e BD

Recommended Posts

Eu tenho uma classe java chamada Cliente, quero fazer uma classe que cadastre esses clientes e envie as informações ao BD. Como faço ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tenho uma classe pronta pra isso... é do meu curso =P

import java.sql.*;/** * <p>Title: GravaBD</p> * <p>Description: Grava o cliente no banco de dados</p> * <p>Company: </p> * @author Sidnei Medeiros Barrientos Júnior * @version 1.0 */public class GravaBD {      ConectaBD conexao;      PreparedStatement stmt;  public GravaBD(ConectaBD conexao) {        this.conexao = conexao;  }  /**  * Este método grava o cliente  */  public void gravarCliente(Cliente cli) throws SQLException{        String sql="insert into Cliente (nome, tel, email, cod_meiodivulg, cod_produto) values (?, ?, ?, ?, ?)";        try {            this.stmt = conexao.getCon().prepareStatement(sql); //getCon() retorna a conexao com o banco            this.stmt.setString(1,cli.getNome());            this.stmt.setString(2,cli.getTel());            this.stmt.setString(3,cli.getEmail());            this.stmt.setInt(4,cli.getCodMeioDivulg());            this.stmt.setInt(5,cli.getCodProduto());            stmt.executeUpdate();            stmt.close();        }        catch (SQLException e) {              throw new SQLException("Erro ao gravar Cliente");        }  }}

mas antes de gravar, tem q criar uma classe pra criticar o cliente hein!? senão tu vai encher teu banco de coisas sem sentido...pra funcionar, so precisa passar a conexao pro metodo construtor da classe e depois passar o cliente para o método gravaCliente();Obs.: ConectaBD é uma classe q possui a conexao com o banco de dados, no caso o Access:

import java.sql.*;import java.sql.SQLException;/** * <p>Title: ConectaBD</p> * <p>Description: conecta ao banco de dados relacional</p> * <p>Company: </p> * @author Sidnei Medeiros B. Junior * @version 1.0 */public class ConectaBD {  private Connection con;  public ConectaBD() throws ConectaBancoException{    try{      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//carrega o driver odbc      con = DriverManager.getConnection("jdbc:odbc:ProjetoBD");//connecta ao banco    }    catch(ClassNotFoundException e){      throw new ConectaBancoException();    }    catch(SQLException e){      throw new ConectaBancoException();    }  }  /**  * retorna a conexao  */  public Connection getCon(){    return this.con;  }  /**  * desconecta do banco de dados  */  public void desconectaBanco(){    try{      con.close();      }      catch(SQLException e){      }  }}

tem bem mais do q tu queria... mas nesse caso eu procurei implementar a arquitetura MVC.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara , muito obrigado ! Só me explica como eu devo passar a conexao pro metodo construtor da classe Cliente e depois passar o cliente para o método gravaCliente();. Eu entendo muito pouco de java. Olhe o código da minha classe Cliente:

 

public class Cliente

 

{

protected int cod_cliente;

protected String nome;

protected String endereco;

protected String cidade;

protected String estado;

protected String fone;

protected String email;

 

public int getCod_Cliente()

{

return cod_cliente ;

}

public String getNome()

{

return nome;

}

public String getEndereco()

{

return endereco;

}

public String getCidade()

{

return cidade;

}

public String getEstado()

{

return estado;

}

 

public String getFone()

{

return fone;

}

public String getEmail()

{

return email;

}

 

 

public void setCod_Cliente(int cod_cliente)

{

this.cod_cliente = cod_cliente;

 

 

}

public void setNome(String nome)

{

this.nome = nome;

 

 

}

public void setEndereco(String endereco)

{

this.endereco = endereco;

}

public void setCidade(String cidade)

{

this.cidade = cidade;

 

 

}

public void setEstado(String estado)

{

this.estado = estado;

 

 

}

 

public void setFone(String fone)

{

this.fone = fone;

 

 

}

public void setEmail(String email)

{

this.email = email;

 

}

 

Cliente()

{

}

 

Cliente(int cod_cliente, String nome, String endereco, String cidade, String estado, String fone, String email)

 

{

this.cod_cliente = cod_cliente;

this.nome = nome;

this.endereco = endereco;

this.cidade = cidade;

this.estado = estado;

this.fone = fone;

this.email = email;

 

}

 

}

 

E depois eu preciso criar um BD chamado "ProjetoBD" no Access ?

Desde já agradeço !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tu vai ter q adaptar as classes pra tua necessidade... nao precisa ser "projetoBD", isso foi pro meu curso... tu pode usar o nome q tu quizer, mas tem q configurar no painel de controle- ODBC Data Source, o seu banco, e alterar o código.

no caso desse projeto q fiz, tu iniciava o programa(PJSystem.class), no metodo main dessa classe eu instanciava um conectabd... se ouvesse erro, ele nem abria a tela de cadastro... se conectasse, a classe PJSystem passava a conexao pro GerenteCad.class (Essa classe é a responsavel pela logica de negocio do meu sistema):

http://www.javadude.eti.br/images/diagramaclasses.gif

esse e o diagrama de classes do meu sistema...

começa com PJSystem, dai ele cria um gerenteCad, depois cria uma TelaCad e passa o gerente como argumento para o metodo construtor.

Pra q tu fez tudo isso! bem... acho q em vez de te ajudar to te atrapalhando... mas tudo isso eu fiz por questao de arquitetura. Assim a tela nao precisa conhecer o banco de dados... e depois se eu quizer adaptá-la pra web, só preciso reescrever a classe TelaCad.

 

concluindo, o gerente sabe tudo! a tela é burra! ela nao tem q saber qual o banco de dados estou usando.

Acho q sou perfeccionista... mas é uma boa prática de programação!

se quizer o projeto inteiro... http://www.javadude.eti.br/downloads/projetojava.zip

 

outra coisa... o cliente tb nao conhece o banco... entao nao se passa a conexao pro cliente. O q tu vai fazer é criar a tela de cadastro, quando o cara clicar em cadastrar, vai ser instanciado um cliente e esse será passado para o gerente... e esse vai criar um gravador(GravaBD.class) e vai passar o cliente pro gravador pelo mátodo gravaCliente().

 

Pense em Orientação a Objetos! alto nível! MVC - modelo(cliente) - visao(telaCad) - controle(GerenteCad)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.