Enviar dados de formulário para o Banco de Dados

Olá pessoal, estou muito precisando de uma boa ajuda no que se trata…
Seguinte estou começando em uma empresa de software e comecei a trabalhar em java(20 dias epenas), estou muito empolgado e estou correndo atras de conhecimento. Fiz um programa que é um formulário de cadastramento, onde tem campo como:

Nome:
Endereço:
Sexo:
Estado:
Biografia:
etc…

Minha dificuldade é como vou fazer para passar esses dados para meu banco de dados, assim que o usuário clicar em SALVAR. Uso o BD MySQL, já fiz as tabela para cada item(nome, endereço, etc…), e já fiz a conexão do meu IDE NetBeans com o BD.
Acredito que tenho que colocar algum código dentro disto:

private void btSalvarActionPerformed(java.awt.event.ActionEvent evt) {
}

Como disse, estou mesmo precisando fazer isso e não sei como/não tenho muito tempo para descobrir por conta agora, se alguem puder me ajudar ao lado eu agradeço muito.

Grato, até mais.

Olá colega;

Abaixo passarei alguns códigos para que possa estudar, ok?
Vou fazer parecido com seu exemplo. Eu costumo fazer assim:

Classe para conectar ao banco, chamo de DAO mas não necessariamente é um.

package dao;

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

import bean.Cliente;

public class DAO {

    static final String url = "jdbc:mysql://seuIP:3306/seuBanco";
    static final String driver = "com.mysql.jdbc.Driver";
    static final String user = "root";
    static final String password = "suaSenha";
    

    public void insCliente(Cliente cli){
       Connection conn=null;   
       PreparedStatement ps=null;

       String sqlInsCliente  = "INSERT INTO Cliente (CliNome, CliEndereco, CliSexo) VALUES(?,?,?)";


       try {   
           Class.forName(driver);   
       } catch (ClassNotFoundException ex) {   
           ex.printStackTrace();   
           JOptionPane.showMessageDialog(null,"Houve uma falha ao carregar os drives do Banco de Dados, contacte o Administrador!!! "+ex);
       }   

       try {
           conn=DriverManager.getConnection(url,user,password);
           ps=conn.prepareStatement(sqlInsCliente);

           ps.setString(1, cli.getCliNome());
           ps.setString(2, cli.getCliEndereco());
           ps.setString(3, mov.getCliSexo());

           ps.execute();

           ps.close();
           conn.close();

       } catch (SQLException ex) {
           ex.printStackTrace();
           JOptionPane.showMessageDialog(null,"Houve uma falha ao incluir os dados no Banco de Dados, contacte o Administrador!!! "+ex);
       }
    }
}

Teria o bean Cliente já criado com seus gets e sets.

Então “chamaria” o método insCliente passando o objeto Cliente como parâmetro:
Faria isso como vc colocou, no evento do botão de seu form:

Cliente cli=new Cliente();
cli.setCliNome=jTextField1.getText();
cli.setCliEnderecoe=jTextField2.getText();
cli.setCliSexo=jTextField3.getText();

DAO dao = new DAO();
dao.insCliente(cli); // aqui estou chamando o metodo para inclusao

Sacou? :wink:

Qualquer coisa dá um berro, testa aí porque não testei.

Abraço

Marco A.

Bom dia, vou tentar te explicar como as coisas funcionam:

1-aqui crio a conexão com o MySQL, no caso a palavra localhost que esta no meio do código diz respeito ao numero do servidor de banco de dados mas se o banco for na sua propria maquina voce deixa localhost.
Obs: no banco você cria apenas uma tabela Exemplo cliente e em cada “linha” você coloca um “campo” como nome, endereço etc.

package cadastro;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

/**
 *
 * @author caio.takei
 */

    
public class Conexao {
    //Método responsavel por abrir/estabelecer a conexão.
    public Connection abrirConexao() {
        Connection con = null;

        try {              
            Class.forName("com.mysql.jdbc.Driver");//aqui especificamos o DRIVER referente ao banco que estamos usando no nosso caso o MySQL.
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/NomeDoBanco","usuario","senha"); 
//na linha acima definimos o "endereço/caminho" para o banco que usaremos neste programinha. 
            System.out.println("Conexão criada com sucesso!");
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Conectar com Banco de Dados \n" + ex, "Erro de Conexão", JOptionPane.ERROR_MESSAGE);
        } catch (ClassNotFoundException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao carregar o driver do Banco de Dados \n" + ex, "Erro: Driver do Banco de Dados", JOptionPane.ERROR_MESSAGE);
        }
        return con;
    }
    
   
   
    //Método responsável por fechar a conexão;
    public void fecharConexao(Connection con) {
        try {
            if (con != null && !con.isClosed()) {  
                con.close();
               // JOptionPane.showMessageDialog(null, "Conexão fechada com sucesso!!!");
            }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Fechar a conexão \n" + ex + JOptionPane.ERROR_MESSAGE);
        }
    }
    
}

2-depois disso crio uma classe onde terei a entidade referente ao que quero mandar para o banco de dados:

public class Cliente {
    
    private String nome;
    private String endereco;
    private String estado;
    private String biografia;

    public String getBiografia() {
        return biografia;
    }

    public void setBiografia(String biografia) {
        this.biografia = biografia;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }
    
    
}

Obs: quando voce esta no netbeans e da dois cliques no botão salvar do seu formuário ele abre o local para você inserir o código referente a ação deste botão:

private void btSalvarActionPerformed(java.awt.event.ActionEvent evt) {

//aqui entre estas chaves voce devera escrever um codigo que seja capas de capturar o que sera digitado pelo usuario nos campos de nome, endereço etc...Armazenar estas informações em algum lugar e depois enviar ao banco ok!
Foi exatamente para isso que criamos esta classe acima (Cliente) pois não temos como jogar diretamente o que foi digitado no formulário para o banco de dados, por isso usamos esta classe para primeiramente pegar o que foi digitado na no formulário e guardar da seguinte forma:

Cliente cliente=new Cliente();  // voce deve criar uma (instancia) "objeto" cliente dentro do codigo do botao eu criei com o nome de "cliente"  mas poderia ser qualquer nome como por exemplo cli cl etc..., (imagine que a classe é a forma a (isntancia) "objeto" ´´e um dos varios bolos que voce pode fazer atraves dela).

//depois voce tem (colocar(setar/set)) atraves dos metodos que estao na classe, cada (atributo/variavel) do objeto cliente "visto que são os mesmos da classe cliente: nome, endereço etc..." com o que foi digitado no formulario da seguinte forma: quando voce coloca o nome que voce deu ao novo objeto e digita "ponto" ele ja lista os metodos que ele tem que são os mesmos da classe atraves do qual foi criado, ai voce chama o metodo setNome que (coloca algo na variavel nome) e voce define esse algo na frente do sinal de igual que será o valor digitado no campo de texto(jTextField1 nome padrao que voce pode/deve nao obrigatoriamente mudar, ficando assim apos o sinal de igual jTextFild1.getText(); ou seja get do ingles que quer dizer pegar/ pegue o texto do campo de texto jTextField1 e coloque na variavel que esta antes do sinal de igual.


cliente.setNome=jTextField1.getText(); 
cliente.setEnderecoe=jTextField2.getText();  
cliente.setSexo=jTextField3.getText();  



}

3-agora crio uma classe chamada ClienteDAO dao quer dizer data access object ou objeto de acesso aos dados,
nesta classe crio o método que sera responsavel pela gravação das informações que forma armazenadas no objeto cliente que usamos acima, para o banco de dados:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;

public class UsuarioDAO {

    
    
    //MÉTODO RESPONSÁVEL POR SALVAR UM NOVO REGISTRO NO BANCO DE DADOS.
    public boolean salvarCliente(Cliente cliente) {
        boolean salvou = true;
        Connection con = null;
        Conexao c = new Conexao(); aqui eu crio um objeto atraves da primeira classe que fiz nesta explicação e abaixo chamo o metodo abrir conexao, evitando que eu tenha que digitar todo aquele codigo de novo.
        try {
            con = c.abrirConexao();
            if (con != null) {
                

                //aqui eu mando jogar na tabela do banco(Cliente) nos campos(nome,endereco,estado e biografia) o que esta salvo dentro das variaveis daquele objeto cliente que criamos la em cima.
                Statement stm = con.createStatement();
                stm.executeUpdate("insert into Cliente(nome,endereco, estado e biografia) values ('" + cliente.getNome() + "' , '" + cliente.getEndereco() + "' ,'" + cliente.getEstado() + "',  '" + cliente.getBiografia() + "')");

                salvou = false;
                JOptionPane.showMessageDialog(null, "Opeação realizada com sucesso!");

            } else {
                System.out.println("Conexão nula.");
            }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao tentar salvar registro no banco de dados." + ex + JOptionPane.ERROR_MESSAGE);
        } finally {
            c.fecharConexao(con);
        }
        return salvou;
    }

4-agora preciso te explicar a parte mais chata de entender, é o seguinte sabe la em cima no topico dois onde te mostrei o que deve ser digitado dentro do codigo do botao. ate que criamos o objeto e guardamos nele o que havia sido digitado na tela?
Então precisamos completar o codigo daquele botao nao coloquei tudo, la em cima, para nao atrapalhar no entendimento, bom vou colocar abaixo não só o que esta faltando mas sim o codigo completo do botao(incluindo o que eu ja tinha colocado la em cima) ok?!?

private void btSalvarActionPerformed(java.awt.event.ActionEvent evt) {

//aqui entre estas chaves voce devera escrever um codigo que seja capas de capturar o que sera digitado pelo usuario nos campos de nome, endereço etc...Armazenar estas informações em algum lugar e depois enviar ao banco ok!
Foi exatamente para isso que criamos esta classe acima (Cliente) pois não temos como jogar diretamente o que foi digitado no formulário para o banco de dados, por isso usamos esta classe para primeiramente pegar o que foi digitado na no formulário e guardar da seguinte forma:

Cliente cliente=new Cliente();  // voce deve criar uma (instancia) "objeto" cliente dentro do codigo do botao eu criei com o nome de "cliente"  mas poderia ser qualquer nome como por exemplo cli cl etc..., (imagine que a classe é a forma a (isntancia) "objeto" ´´e um dos varios bolos que voce pode fazer atraves dela).

//depois voce tem (colocar(setar/set)) atraves dos metodos que estao na classe, cada (atributo/variavel) do objeto cliente "visto que são os mesmos da classe cliente: nome, endereço etc..." com o que foi digitado no formulario da seguinte forma: quando voce coloca o nome que voce deu ao novo objeto e digita "ponto" ele ja lista os metodos que ele tem que são os mesmos da classe atraves do qual foi criado, ai voce chama o metodo setNome que (coloca algo na variavel nome) e voce define esse algo na frente do sinal de igual que será o valor digitado no campo de texto(jTextField1 nome padrao que voce pode/deve nao obrigatoriamente mudar, ficando assim apos o sinal de igual jTextFild1.getText(); ou seja get do ingles que quer dizer pegar/ pegue o texto do campo de texto jTextField1 e coloque na variavel que esta aintes do sinal de igual.


cliente.setNome=jTextField1.getText(); 
cliente.setEnderecoe=jTextField2.getText();  
cliente.setSexo=jTextField3.getText();  

//DAQUI EM DIANTE COLOCAREI E EXPLICAREI O QUE ESTAVA FALTANDO bom apos termos guardado tudo dentro do objeto cliente devemos de alguma forma chamar aquele metodo(public boolean salvarCliente(Cliente cliente)) que sera responsavel por efetivamente salvar as informações no banco ,que esta dentro da classe ClienteDAO(obs: veja bem esta classe "nao" tem nada a ver com a classe cliente, é outra classe independente),  para chamarmos esse metodo faremos da seguinte forma:
//tambem teremos que criar uma instancia "objeto" do tipo ClienteDAO aqui dentro e faremos assim:

ClienteDAO clientedao = new ClienteDAO();
//criei acima com o nome de clientedao, poderia ser qualquer outro nome.

clientedao.salvarCliente(cliente)
//acima digitei o nome do objeto que  eu havia criado e depois digitei "ponto" e ja me lista o metodo de salvarCliente, (obs:e nao se preucupe neste ponto é uma ves só que se de digitar cliente entre paranteses) e este por sinal este cliente que esta entre parenteses é o mesmo que criamos la em cima no qual guardamos/guardaremos o que sera digitado no formulario em suas variaveis, o que estou fazendo aqui é passando ele "entre parenteses" atraves do metodo salvarCliente por meio do objeto clientedao que criei agora ai ele manda tudo isso la naquele metodo igual ta classe ClienteDAO e esse metodo como expliquei la em cima joga na tabela que eu defini nele nos campos que eu tambem defini nele, o que o cliente esta guardando.
}

Obs: tudo que esta em verde não é código é só comentario explicando o que esta acontecendo, portanto não é necessário incli-los no seu código, embora seja bom para quem esta comessando.

:slight_smile: Bom cara espero ter ajudado de alguma forma, qualquer coisa manda suas duvidas, porque sei que é difícil assimilar/entender tudo isso de uma vez.

CAIO E FANAMA,

fiz de acordo com o caio, pois compreendi mais… só esta dando 5 erros:

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Administrador\Desktop\Fábio\Projeto Java\Cipolatto\build\classes
C:\Documents and Settings\Administrador\Desktop\Fábio\Projeto Java\Cipolatto\src\NewJFrame.java:130: non-static method getCampoNome() cannot be referenced from a static context
stm.executeUpdate(“insert into cadastro(nome_cad,endereco_cad,biografia_cad,email_cad,fone_cad) values (’” + Cadastro.getCampoNome() + “’ , '” + Cadastro.getCampoEnd() + “’ , '” + Cadastro.getBiografia() + “’ , '” + Cadastro.getCampoEmail() + “’ , '” + Cadastro.getCampoFone() + “’)”);
C:\Documents and Settings\Administrador\Desktop\Fábio\Projeto Java\Cipolatto\src\NewJFrame.java:130: non-static method getCampoEnd() cannot be referenced from a static context
stm.executeUpdate(“insert into cadastro(nome_cad,endereco_cad,biografia_cad,email_cad,fone_cad) values (’” + Cadastro.getCampoNome() + “’ , '” + Cadastro.getCampoEnd() + “’ , '” + Cadastro.getBiografia() + “’ , '” + Cadastro.getCampoEmail() + “’ , '” + Cadastro.getCampoFone() + “’)”);
C:\Documents and Settings\Administrador\Desktop\Fábio\Projeto Java\Cipolatto\src\NewJFrame.java:130: cannot find symbol
symbol : method getBiografia()
location: class NewJFrame.Cadastro
stm.executeUpdate(“insert into cadastro(nome_cad,endereco_cad,biografia_cad,email_cad,fone_cad) values (’” + Cadastro.getCampoNome() + “’ , '” + Cadastro.getCampoEnd() + “’ , '” + Cadastro.getBiografia() + “’ , '” + Cadastro.getCampoEmail() + “’ , '” + Cadastro.getCampoFone() + “’)”);
C:\Documents and Settings\Administrador\Desktop\Fábio\Projeto Java\Cipolatto\src\NewJFrame.java:130: non-static method getCampoEmail() cannot be referenced from a static context
stm.executeUpdate(“insert into cadastro(nome_cad,endereco_cad,biografia_cad,email_cad,fone_cad) values (’” + Cadastro.getCampoNome() + “’ , '” + Cadastro.getCampoEnd() + “’ , '” + Cadastro.getBiografia() + “’ , '” + Cadastro.getCampoEmail() + “’ , '” + Cadastro.getCampoFone() + “’)”);
C:\Documents and Settings\Administrador\Desktop\Fábio\Projeto Java\Cipolatto\src\NewJFrame.java:130: non-static method getCampoFone() cannot be referenced from a static context
stm.executeUpdate(“insert into cadastro(nome_cad,endereco_cad,biografia_cad,email_cad,fone_cad) values (’” + Cadastro.getCampoNome() + “’ , '” + Cadastro.getCampoEnd() + “’ , '” + Cadastro.getBiografia() + “’ , '” + Cadastro.getCampoEmail() + “’ , '” + Cadastro.getCampoFone() + “’)”);
5 errors
CONSTRUÇÃO FALHOU (tempo total: 0 segundos)

o que pode ser?

Você esta fazendo em um projeto java normal, ou em um projeto web?
Dependendo de como for, seria legal voce postar aqui a parte do seu codigo que esta apresentando erro, se é que esteja acusando erro… é só voce usar os botões code antes e depois que inserir o codigo na mensagem, bom fico no aguarde abraço.

Olá Caio,

meu amigo, pra eu não me complicar fiz um programa com apenas um Campo NOME, e apliquei seus códigos e deu certo… Só na hora que clico em enviar da erro no driver da conexão.
Baxei o driver que usamos só ele vem dentro de uma pasta em um .JAR. No NetBeans ele rodou sabe, ali na aba serviços.
Como faço pra instalar certo este driver?
Aí vai meu código…

Grato pela sua atenção.
Até mais.

package sonome;
  
import java.sql.Connection;   
import java.sql.DriverManager;   
import java.sql.SQLException;   
import javax.swing.JOptionPane;
import java.sql.ResultSet;   
import java.sql.Statement;   


public class NewJFrame extends javax.swing.JFrame {
    
   
    public NewJFrame() {
        initComponents();
    }
       
    public class Conexao {   
    //Método responsavel por abrir/estabelecer a conexão.   
    public Connection abrirConexao() {   
        Connection con = null;   
  
        try {                 
            Class.forName("com.mysql.jdbc.Driver");//aqui especificamos o DRIVER referente ao banco que estamos usando no nosso caso o MySQL.   
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cipolatto","root","3mpr0d4t4");   
//na linha acima definimos o "endereço/caminho" para o banco que usaremos neste programinha.   
            System.out.println("Conexão criada com sucesso!");   
        } catch (SQLException ex) {   
            JOptionPane.showMessageDialog(null, "Erro ao Conectar com Banco de Dados \n" + ex, "Erro de Conexão", JOptionPane.ERROR_MESSAGE);   
        } catch (ClassNotFoundException ex) {   
            JOptionPane.showMessageDialog(null, "Erro ao carregar o driver do Banco de Dados \n" + ex, "Erro: Driver do Banco de Dados", JOptionPane.ERROR_MESSAGE);   
        }   
        return con;   
    }   
       
     
     
    //Método responsável por fechar a conexão;   
    public void fecharConexao(Connection con) {   
        try {   
            if (con != null && !con.isClosed()) {     
                con.close();   
               // JOptionPane.showMessageDialog(null, "Conexão fechada com sucesso!!!");   
            }   
        } catch (SQLException ex) {   
            JOptionPane.showMessageDialog(null, "Erro ao Fechar a conexão \n" + ex + JOptionPane.ERROR_MESSAGE);   
        }   
    }   
       
} 
    
    public class Cliente {
        private String setNome;
       
    private String nome;   
   
	
    public String getNome() {   
        return nome;   
    }   
  
    public void setNome(String nome) {   
        this.nome = nome;   
    }   
  
       
}  

    public class UsuarioDAO {   
  
    //MÉTODO RESPONSÁVEL POR SALVAR UM NOVO REGISTRO NO BANCO DE DADOS.   
    public boolean salvarCliente(Cliente cliente) {   
        boolean salvou = true;   
        Connection con = null;   
        Conexao c = new Conexao(); //aqui eu crio um objeto atraves da primeira classe que fiz nesta explicação e abaixo chamo o metodo abrir conexao, evitando que eu tenha que digitar todo aquele codigo de novo.   
        try {   
            con = c.abrirConexao();   
            if (con != null) {   
                   
  
                //aqui eu mando jogar na tabela do banco(Cliente) nos campos(nome,endereco,estado e biografia) o que esta salvo dentro das variaveis daquele objeto cliente que criamos la em cima.   
                Statement stm = con.createStatement();   
                stm.executeUpdate("insert into cadastro(nome_cad) values ('" + cliente.getNome() + "')");   
  
                salvou = false;   
                JOptionPane.showMessageDialog(null, "Opeação realizada com sucesso!");   
  
            } else {   
                System.out.println("Conexão nula.");   
            }   
        } catch (SQLException ex) {   
            JOptionPane.showMessageDialog(null, "Erro ao tentar salvar registro no banco de dados." + ex + JOptionPane.ERROR_MESSAGE);   
        } finally {   
            c.fecharConexao(con);   
        }   
        return salvou;   
    }
    }
    
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jLabelNome = new javax.swing.JLabel();
        jTextNome = new javax.swing.JTextField();
        jButtonSalvar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabelNome.setText("Nome:");

        jTextNome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextNomeActionPerformed(evt);
            }
        });

        jButtonSalvar.setText("Salvar");
        jButtonSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSalvarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(39, 39, 39)
                        .addComponent(jLabelNome)
                        .addGap(18, 18, 18)
                        .addComponent(jTextNome, javax.swing.GroupLayout.PREFERRED_SIZE, 195, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(145, 145, 145)
                        .addComponent(jButtonSalvar)))
                .addContainerGap(42, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(56, 56, 56)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelNome)
                    .addComponent(jTextNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(44, 44, 44)
                .addComponent(jButtonSalvar)
                .addContainerGap(34, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    private void jTextNomeActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
}

    private void jButtonSalvarActionPerformed(java.awt.event.ActionEvent evt) {
Cliente cliente = new Cliente();

cliente.setNome=jTextNome.getText();

UsuarioDAO clientedao = new UsuarioDAO();

clientedao.salvarCliente(cliente);

}
    
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify
    private javax.swing.JButton jButtonSalvar;
    private javax.swing.JLabel jLabelNome;
    private javax.swing.JTextField jTextNome;
    // End of variables declaration
    
}

O NetBeans pediu para criar a variável setNome para não haver erro. ok

 public class Cliente {   
        private String setNome;   
         
        private String nome;     
     
       
    public String getNome() {     
        return nome;     
    }     
     
    public void setNome(String nome) {     
        this.nome = nome;     
    }     
     
         
}     

Bom dia meu amigo,

em relação a instalação do driver tenho praticamente certeza que o netbeans ja o possua, para usá-lo em sua aplicação vc deve fazer o seguinte:

1-voce vai e clica com o botao direito do mouse em cima do icone que representa sua aplicação(na parte da esquerda do netbeans), e selecione a opção properties:
que sera a ultima.

2-Quando aparecer a janela Project Properties, no canto esquerdo dela você seleciona libraries com dois clicks, depois disso na parte da direita você clica no botão Add Library, na janelinha Add Library que aparecer, você seleciona a biblioteca MySQL JDBC Driver, pode ser que o nome esteja diferente mas com certeza tera(MySQL)no nome, ai voce seleciona e clica em Add Library, beleza agora voce da um Ok na tela Project Properties.

Ai pronto o driver ja vai estar adicionado no seu programa.

Faz isso e testa, se continuar tendo problemas você avisa ai.

Abraço.

pow consegui :smiley:

No outro projeto que tem Interesses: Música, Cinema, Informatica, Esportes… todos sao jCheckBox…
Não consigo enviar pro banco de dados se algum não tiver marcado, apenas se eu marcas todos… coloquei este código:

if( jCheckMusica.isSelected() ) cliente.musica="X"; if( jCheckCinema.isSelected() ) cliente.cinema="X"; if( jCheckEsportes.isSelected() ) cliente.esportes="X"; if( jCheckInformatica.isSelected() ) cliente.informatica="X";

Outra coisa se não for encômodo, gostaria que você me explicasse esse código:

[quote] public class Cliente {

private String nome;


public String getNome() {   
    return nome;   
}   

public void setNome(String nome) {   
    this.nome = nome;   
}        [/quote]                            

Bom, eu não compriendi como funciona esta classe Clientes e esses métodos…esses get e set
Até mais. Grato

Então referente a classe cliente voce declara as variaveis referentes aos seus atributos, exemplo

private String nome;

e depois gera os gets e sets:

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
} 

o porque dos get e sets:
bom quando voce codifica o botao salvar precisa, colocar um codigo nele que pegue os dados do campo de texto nome do formulário e guarde em algum lugar…
Para isso é que criamos uma instância “objeto” do tipo Cliente, exemplo:

Cliente cliente = new Cliente();

depois de ter criado esse objeto do tipo (da classe Cliente) voce pode usar todos os metodos e variaveis que estiverem na classe, e precisaremos de um metodo set (do ingles “colocar”) (para cada variavel/atributo) "para que possamos literalmete “colocarmos” o que esta no campo de texto dentro da respectiva variavel, exemplo:

cliente.setNome=jTextField1.getText();  
//coloque dentro da variavel nome do objeto cliente, o que pegar no campo de texto jTextField1.

depois quando voce criou um objeto completamente novo do tipo da outra classe ClienteDAO e através dele chamou o metodo de salvar, note:

stm.executeUpdate("insert into cadastro(nome_cad) values ('" + cliente.getNome() + "')");    
// aqui voce mandou pegar(getNome) o que tinha colocado na variavel nome do primeiro objeto, e mandar para o banco de dados,

Ah, uma observação eu cometi um erro a classe DAO deve ter o mesmo nome da classe modelo com o DAO na frente exemplo:
modelo: Cliente a outra deve ser CleinteDAO, eu coloquei usuario, funciona tambem, mas quando voce tiver um programa maior com mais classes ficaria dificil saber qual DAO e de qual modelo, sendo que que cada classe modelo devera ter uma DAO, (At:modelo é a classe com as variaveis e os metodos gets e sets),

Bom espero ter ajudado, um abraço e fique com Deus.

Uhm… ta certo… ta rodando bem.

Bom, resolvido problema.
Só te dizer o que você está fazendo(ajuda detalhada), é de fundamental importância para o aprendizado e motivação da pessoa que inicia. Pretendo fazer o mesmo, assim que tiver mais experiência. Obrigado por sua ajuda e compreensão!

Obs: qualquer coisa entro em contato(haha).

Até mais. Idem :wink:

Não foi nada meu amigo, pois é ensinando que se aprende, e se percebe o tanto que ainda temos de aprender, abrindo assim sempre novos horizontes para o conhecimento, um abraço e boa sorte! :slight_smile:

1 curtida