com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘(1,‘Ativo’,‘0’,Ativo)’ at line 1[SQL: 1064, 42000]
Comando MySQL:
publicintincluirConta(Contaa)throwsException{
//retorna0=>erronainclusão//1=>incluiu//2=>nomecadastradointretorno=0;Stringsql=null;Connectionconn=this.conexao.abreConexaoBD();Statementst=conn.createStatement();sql="insert into conta (codEstendido, descricao, saldo, tipo";sql+="values (";sql+=a.getCodEstendido()+",";sql+="'"+a.getDescricao()+"',";sql+="'"+a.getSaldo()+"',";sql+=a.getTipo()+")";intqRs=st.executeUpdate(sql);if(qRs==0){
retorno=0;}else{
retorno=1;}
st.close();conn.close();returnretorno;}
Eu passei pelo debug, ate a linha 19 a aplicação rodo certinha, mas depois deu esse erro
acho que esse int qRs que esta dando erro, mas não sei o que fazer
alguém poderia me ajudar?
Use um StringBuffer para concatenar essas Strings.
Depois, de um System.out.println() na sua String Query para mostrar o resultado dela. Deve ter vírgula e/ou aspas sobrando ai.
Torna seu código muito mais legivel e você não precisa se preoculpar com as aspas.
Quanto ao erro, pode ser que o campo saldo não seja varchar mas sim int (no banco de dados).
Fexx
ulysses:
Ola pessoal,
alguém poderia me ajudar com esse erro:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘(1,‘Ativo’,‘0’,Ativo)’ at line 1[SQL: 1064, 42000]
Comando MySQL:
publicintincluirConta(Contaa)throwsException{
//retorna0=>erronainclusão//1=>incluiu//2=>nomecadastradointretorno=0;Stringsql=null;Connectionconn=this.conexao.abreConexaoBD();Statementst=conn.createStatement();sql="insert into conta (codEstendido, descricao, saldo, tipo";sql+="values (";sql+=a.getCodEstendido()+",";sql+="'"+a.getDescricao()+"',";sql+="'"+a.getSaldo()+"',";sql+=a.getTipo()+")";intqRs=st.executeUpdate(sql);if(qRs==0){
retorno=0;}else{
retorno=1;}
st.close();conn.close();returnretorno;}
Eu passei pelo debug, ate a linha 19 a aplicação rodo certinha, mas depois deu esse erro
acho que esse int qRs que esta dando erro, mas não sei o que fazer
alguém poderia me ajudar?
Você esqueceu de fechar o ) depois do tipo, e ainda colocou o values junto com o tipo, veja:
sql="insert into conta (codEstendido, descricao, saldo, tipo";sql+="values (";
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘(1,‘Ativo’,‘0’,Ativo)’ at line 1[SQL: 1064, 42000]
Comando MySQL:
publicintincluirConta(Contaa)throwsException{
//retorna0=>erronainclusão//1=>incluiu//2=>nomecadastradointretorno=0;Stringsql=null;Connectionconn=this.conexao.abreConexaoBD();Statementst=conn.createStatement();sql="insert into conta (codEstendido, descricao, saldo, tipo";sql+="values (";sql+=a.getCodEstendido()+",";sql+="'"+a.getDescricao()+"',";sql+="'"+a.getSaldo()+"',";sql+=a.getTipo()+")";intqRs=st.executeUpdate(sql);if(qRs==0){
retorno=0;}else{
retorno=1;}
st.close();conn.close();returnretorno;}
Eu passei pelo debug, ate a linha 19 a aplicação rodo certinha, mas depois deu esse erro
acho que esse int qRs que esta dando erro, mas não sei o que fazer
alguém poderia me ajudar?
Você esqueceu de fechar o ) depois do tipo, e ainda colocou o values junto com o tipo, veja:
sql="insert into conta (codEstendido, descricao, saldo, tipo";sql+="values (";
Isso ai mesmo, mais um motivo para você ficar longe de concatenações
U
ulysses
Fexx muito obrigado é isso mesmo
nem percebi que tinha esquecido de fecha o parêntese.
drsmachado
nel:
Use um StringBuffer para concatenar essas Strings.
Depois, de um System.out.println() na sua String Query para mostrar o resultado dela. Deve ter vírgula e/ou aspas sobrando ai.
Prefira StringBuilder, pois o StringBuffer já está com muita coisa depreciada.
Embora a query seja pequena, seria muito mais fácil ter identificado o erro utilizando um objeto de uma das duas classes acima, pois a sintaxe seria algo como