Erro no executeUpdate()

Galera é o seguinte: fiz um programa pra se comunicar com um banco de dados MySQL, porém em uma das funcionalidades que é o de inserir valores em uma tabela, encontro um erro que achei esquisito de interpretar.

Toda a parte de conexão com o banco está correta, a tabela que uso tem o nome de cliente com 3 colunas: Nome:varchar(50), Telefone:varchar(13), e Codigo:int

O método:

public void insereBD( String nome, String telefone) throws SQLException { String stat = "INSERT INTO cliente (nome, telefone) VALUES (\"" + nome + "," + telefone + "\")"; statement.executeUpdate(stat); }

Trecho do Erro:
java.sql.SQLException: Column count doesn’t match value count at row 1

Percebam que não estou inserindo o atributo “Codigo”, pois ele é a chave primária e se auto-complementa. Testando no SqlDeveloper (estou aprendendo ainda :smiley: ), o trecho SQL visto acima funciona normalmente (Claro que sem os “”" ), e vi esse pequeno comando de formatação - “”" - num material de referência e em outros comandos que testei funcionou. Gostaria de saber com mais detalhes a funcionalidade dele.

Desde já agradecido a este fórum que tanto me ajudou.

desconheço, mas veja se isso lhe ajuda…

String stat = "INSERT INTO cliente (nome, telefone) VALUES ("\" '" + nome + "','" + telefone  + "' "\")"; 

Usa preparedstatement. Estás a abrir aspas antes da primeira coluna e a fechar depois da ultima. Na prática é como se estivesses a enviar uma única coluna quando o BD espera duas.

Se com duas colunas já estás a ter problemas, imagina com muitas. Com PreparedStatement tudo fica mais legivel.

experimente trocar aspas duplas por simples

Usei o preparedStatement do colega e funcionou. Obrigado a todos pela ajuda.