Oi, esta ocorrendo alguns erros no código, e estou fazendo um teste apenas para 2 campos, o o CPF e Senha (para funcionando, depois faço os outros).
Se alguem puder ajudar… Obrigado
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try{ //tratamento de erros
Class.forName("com.mysql.jdbc.Driver");//busca Driver
//conecta no BD
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/sgev","root","");
Statement stmt = con.createStatement(); //objeto comdo sql
String CadNome = jTextField1.getText(); //obtém nome digitado
int CadMat=Integer.parseInt( jTextField2.getText() );
stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values (' " +
CadMat + " ',' " +
CadNome + " ' ) " );
JOptionPane.showMessageDialog( this, " Dados Salvos! ");
con.close(); // fecha conexão com BD
} catch( SQLException e){ //trata os erros
JOptionPane.showMessageDialog(this, "Erro Cmdo SQL " +
e.getMessage() );
// TODO add your handling code here:
}
Colega, acho que um post como esse tem grande chance de ficar largado por aí, pelos seguintes problemas:
1 - Você não informa qual(is) erro(s) exatamente ocorrem;
2 - Se seu código tem um problema, poste somente o trecho onde provavelmente ocorre esse problema;
3 - você menciona uma coisa na descrição do problema e está fazendo ao que parece outra… disse que está inserindo CPF e senha, quando seu insert se refere a outros campos…
Bem, não sou moderador e não vou ficar pegando no seu pé por isso. A intenção é manter qualidade no fórum. Mas dê uma olhada nestas linhas:
stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values (' " +
CadMat + " ',' " +
CadNome + " ' ) " );
Se Matricula é um int, não precisa ser envolvido por essas aspas simples que estão entrando na montagem do insert. Ficaria então assim:
stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values ( " +
CadMat + " ,' " +
CadNome + " ' ) " );
Agora, fora as broncas (rsrsrsrs) um conselho de ouro: estude o uso de PreparedStatement e largue isso de montar comandos emendando Strings!! No dia que você tiver que inserir uma Joana D’Arc saberá do que estou falando.
Arrumei, é muito tempo sem usar forum hehe Valeu pelas dicas.
Mas não vi diferença com o código abaixo que você “editou”…
[quote=ADEMILTON]Colega, acho que um post como esse tem grande chance de ficar largado por aí, pelos seguintes problemas:
1 - Você não informa qual(is) erro(s) exatamente ocorrem;
2 - Se seu código tem um problema, poste somente o trecho onde provavelmente ocorre esse problema;
3 - você menciona uma coisa na descrição do problema e está fazendo ao que parece outra… disse que está inserindo CPF e senha, quando seu insert se refere a outros campos…
Bem, não sou moderador e não vou ficar pegando no seu pé por isso. A intenção é manter qualidade no fórum. Mas dê uma olhada nestas linhas:
stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values (' " +
CadMat + " ',' " +
CadNome + " ' ) " );
Se Matricula é um int, não precisa ser envolvido por essas aspas simples que estão entrando na montagem do insert. Ficaria então assim:
stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values ( " +
CadMat + " ,' " +
CadNome + " ' ) " );
Agora, fora as broncas (rsrsrsrs) um conselho de ouro: estude o uso de PreparedStatement e largue isso de montar comandos emendando Strings!! No dia que você tiver que inserir uma Joana D’Arc saberá do que estou falando.
[/quote]
Vamos dar um zoom então…
perceba ao final da linha, depois da palavra “values” estava assim:
depois de editado ficou assim:
e na linha abaixo, só o trecho imediatamente antes da vírgula. Estava assim:
ficou assim:
“Arrumou” = conseguiu resolver? coloque “[RESOLVIDO]” no tópico.
Ficaria assim?
stmt.executeUpdate( "insert into Cliente (Senha, CPF) values ( " +
pf_pass + " ,' " +
pf_cpf + " ' ) " );
E não deu certo, o erro ainda persiste… “Cannot find symbol”
Coloquei em uma linha só, mais facil de se visualizar, mas o erro da linha sumiu, mas tem erro na parte abaixo dessa…
Assim ficou certo (confere se era isso mesmo)
E a parte que esta com erro é essa aqui:
[code] public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Cadastrar().setVisible(true);[/code]
Consegui arrumar o stmt, mas agora esta dando problema no driver do MySQL. Já joguei o driver na Biblioteca do NetBeans, e o codigo esta assim:
[quote=Vitoriano]Consegui arrumar o stmt, mas agora esta dando problema no driver do MySQL. Já joguei o driver na Biblioteca do NetBeans, e o codigo esta assim:
Arrumei o problema do Driver. Mas apareceu um do MySQL agora… O código ficou:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try{ try {
//busca Driver
Class.forName("com.mysql.jdbc.Driver"); //busca Driver
} catch (ClassNotFoundException ex) {
Logger.getLogger(Cadastrar.class.getName()).log(Level.SEVERE, null, ex);
}
//conecta no BD
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/sgev","root","");
Statement stmt = con.createStatement(); //objeto comdo sql
JPasswordField pf_pass = jPasswordField1;
String pf_cpf = jTextField11.getText();
stmt.executeUpdate("insert into cliente (pf_cpf, pf_pass) values ('jTextField11' , 'jPasswordField1') " );
JOptionPane.showMessageDialog( this, " Dados Salvos! ");
con.close(); // fecha conexão com BD
} catch( SQLException e){ //trata os erros
JOptionPane.showMessageDialog(this, "Erro Cmdo SQL " +
e.getMessage() );
E o problema que dá é: Unknown column ‘pf_pass’ in 'field list’
No BD o campo pf_pass é um char.