Re:nao esta gravando no banco de dados pq?

BOM DIA GALERA, ESTOU COM PROBLEMA AQUI O SISTEMA DE ACADEMIA!!! FIZ A CONECÇÃO DO BANCO TD CERTO… MAS NA HORA DE GRAVA TA DIZENDO Q JA ESTA GRAVADO… E NAO TEM NADA AMAZENADO NO BANCO???

ESSE É O CODIGO Q USEI PRA FAZER A CONCÇÃO!!!

[code]private void Conexao() {
try{
Class.forName(“com.mysql.jdbc.Driver”);
conn = (Connection) DriverManager.getConnection(“jdbc:mysql://localhost/academia”,“root”,"");
MeuState = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql=“select * from cadaluno”;
rs=MeuState.executeQuery(sql);
rs.first();
AtualizaCampos();
JOptionPane.showMessageDialog(null,“Conexao Realizada”);
}
catch(ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null,“Driver JDBC-ODBC não encontrado!”); }
catch(SQLException ex){
JOptionPane.showMessageDialog(null,“Problema na Conexao com Banco de dados!”);
}
}

public void AtualizaCampos() {
    try {
        tfcodigo.setText(rs.getString("codigo"));
        tfnome.setText(rs.getString("nome"));
        tfendereco.setText(rs.getString("endereco"));
        tftel1.setText(rs.getString("tel1"));
        tftel2.setText(rs.getString("tel2"));
        tfdatanascimento.setText(rs.getString("datanascimento"));
        tfobs.setText(rs.getString("obs"));
        tfcelular.setText(rs.getString("celualr"));
        tfemail.setText(rs.getString("email"));
        }
    catch(SQLException ex)
    { }    }

public void limpacampos(){
JTextField[] tf=campos();
for(int i=0;i<tf.length;i++){
tf[i].setText("");
}

}
private JTextField[] campos(){
JTextField[] tf={tfcodigo,tfnome,tfendereco,tftel1,tftel2,tfdatanascimento,tfobs,tfcelular,tfemail};
return tf;
}
[/code]

E ESSE É O CODIGO DO BOTAO INSERIR!!!

private void jToggleButton9ActionPerformed(java.awt.event.ActionEvent evt) { try { tfcodigo.requestFocus(); String SQL="insert into cadaluno(codigo,nomealuno,endereco,email,datanascimento,te1,tel2,celular,obs) Values " + "('"+tfcodigo.getText()+"'," + tfnome.getText()+"'," + tfendereco.getText()+"," + tfdatanascimento.getText()+"," + tftel1.getText()+"," + tftel2.getText()+"," + tfcelular.getText()+"," + tfobs.getText()+"," + tfemail.getText()+")"; MeuState.executeUpdate(SQL); JOptionPane.showMessageDialog(null,"Gravação Realizada com Sucesso"); limpacampos(); } catch(SQLException ex){ JOptionPane.showMessageDialog(null,"Registro já Cadastrado");}

1-> Pesquise sobre sessão e transações; teu erro tá aí.
2-> Cuide pra não fazer tópicos nem títulos todos em caixa alta.

Abraço!

sessão e transações??? tem aqui no forum???

Não necessariamente uma SQLException é um erro do registro ja cadastrado
nessa parte

catch(SQLException ex){  
           JOptionPane.showMessageDialog(null,"Registro já Cadastrado");
}  

manda ele imprimir o printStrackTrace
e ve o erro de verdade

catch(SQLException ex){ JOptionPane.showMessageDialog(null,"Registro já Cadastrado"); }

A linha acima citada eu tirei do projeto… mas continua nao gravando no banco de dados as informações pq???

Nao era para tirar e sim trocar
coloca

catch(SQLException ex){
          ex.printStackTrace();
   }

desse jeito ele vai aparecer no console o erro que esta dando

vc aprendeu usar o capslock agora é?

editei TODO seu tópico por favor… os próximos serão deletados!

[]s

Amigo fiz assim primeiro…

[code]}
catch(SQLException ex){
JOptionPane.showMessageDialog(null,ex.printStackTrace());

}[/code]

mas continua dando erro, agora pede pra excluir essa linha no projeto…

eu postei errado o codigo a primeira vez ai arrumei depois kkkk


catch(SQLException ex){  
          ex.printStackTrace();  
   }  

Oi!

1 - Imprima o contéudo da sua String no método para inserir.
2 - Pegue este contéudo e insira manualmente no seu banco, dessa forma, terás certeza que o problema não está relacionado a sua instrução SQL.

Abraços.

É mesmo está faltando algumas aspas simples la!

aspas??? onde meu amigo???

nel !!!

amigo fiz aplicação manuel aqui e ficou!!!

mas pelo sistema nao fica nao!!!

se todos campos forem de varchar ficaria assim

	    String SQL="insert into cadaluno(codigo,nomealuno,endereco,email,datanascimento,te1,tel2,celular,obs) Values " +  
            "('"+tfcodigo.getText()+"','"  
            + tfnome.getText()+"','"  
            + tfendereco.getText()+"','"  
            + tfdatanascimento.getText()+"','"  
            + tftel1.getText()+"','"  
            + tftel2.getText()+"','"  
            + tfcelular.getText()+"','"  
            + tfobs.getText()+"','"  
            + tfemail.getText()+"')";

enatao vou troca e coloca tdos varchar… mas se nao forem como ficaria???

1º-Não construa suas Query’s com concatenação desta forma, utilize PreparedStatement.
2º- Procure utilizar orientação a objeto, construa suas entidades e suas DAOs.
3º- o “executeUpdate” costuma retornar um inteiro que representa o número de registros alterados, ou 0 caso nada tenha acontecido.
4º- Desliga o CapsLock, tive a sensação que você estava gritando.

No mais boa sorte

galera desculpa pela Caixa Alta…

ganondorfan - desculpa ai meu brother mas é pq aprendir assim dessa forma. nao sei usar ou metado nao… sou iniciante e so quero terminar um trabalho de facudade…

faça de uma forma elegante e fácil de visualizar, assim fica mais fácil de perceber o que está falatando e etc…

[code]try {
con = DAOConexao.getConn();
String sql = “INSERT into tb_Clientes (CodigoImprCliente ,NomeCLi ,EnderecoCli ,TelefoneCli)” + " VALUES (? ,?, ?, ?)";

        pstm = con.prepareStatement(sql);  
        
        pstm.setString(1,cad.getCodigoImprCliente());
		pstm.setString(2,cad.getNome());							
		pstm.setString(3,cad.getEndereco());			
		pstm.setString(4,cad.getTel());
		
		pstm.executeUpdate(); 
		con.commit();

	}catch (SQLIntegrityConstraintViolationException e) {
		inserir = false;
		new Mensagem(null, "ERRO", "Cliente não Cadastrado ! ", Mensagem.MSG_BOTAO_OK, Mensagem.MSG_ICONE_ERRO);
		
	}catch(Exception e){
		System.out.println(e.toString());
	}finally{

		try{
			// pstm.close(); 
			//con.close();
		}catch(Exception e) {   
			e.printStackTrace();   
		}  [/code]

se for campo numerico vc tira as aspas simples

       "'," +tftel2.getText()+",'" 

se for Date vc coloca formato ‘2011-12-30’