joaogil 1 Denunciar post Postado Novembro 26, 2003 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
.:JavaDude:. 0 Denunciar post Postado Novembro 29, 2003 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
joaogil 1 Denunciar post Postado Novembro 29, 2003 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
.:JavaDude:. 0 Denunciar post Postado Novembro 29, 2003 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