//metodo para alterar uma tabela no MySQLpublicvoidalterar(intopcao)throwsSQLException{System.out.println("");System.out.println("Digite o numero correspondente a alteracao?");System.out.println("0 - Endereco; 1 - CEP");System.out.println("2 - Cidade; 3 - Estado;");System.out.println("4 - Pais");opcao=input.nextInt();switch(opcao){case0:{Stringa="";Stringendereco="";System.out.println("Qual é o novo endereco?");endereco=input.next();System.out.println(endereco);Statementst=con.createStatement();a+=" Where idalunos 1";a+=" Insert Into alunos(endereco) ";a+=" values('endereco')";st.executeUpdate(a);return;}case..........:}
Entretanto, ele nao funciona pq, suspeito eu, o valor da variável “endereco” nao é enviado na linha 21, e também aparece o seguinte erro:
Sim, rs… tinha esquecido do =
Realmente resolveu alguns dos erros, mas o problema ainda persiste… quando, na linha 21, ao inves da variavel eu coloco ‘algumaString’ ele escreve corretamente…mas quando eu coloco a variavel nada acontece, a nao ser os erros…
:roll:
R
Roger_Niero
AITech IX:
Olá Roger.
Sim, rs… tinha esquecido do =
Realmente resolveu alguns dos erros, mas o problema ainda persiste… quando, na linha 21, ao inves da variavel eu coloco ‘algumaString’ ele escreve corretamente…mas quando eu coloco a variavel nada acontece, a nao ser os erros…
:roll:
podería postar o código de como o código está?
AITech_IX
Claro!
Segue abaixo:
//classe alunos, que altera o BD
importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.sql.*;importjava.util.Scanner;publicclassalunos{Connectioncon=Conexao.getConnection();Scannerinput=newScanner(System.in);Stringp="";publicvoidalterar(intopcao)throwsSQLException{System.out.println("");System.out.println("Digite o numero correspondente a alteracao?");System.out.println("0 - Endereco; 1 - CEP");System.out.println("2 - Cidade; 3 - Estado;");System.out.println("4 - Pais");opcao=input.nextInt();switch(opcao){case0:{Stringa="";Stringendereco="";System.out.println("Qual é o novo endereco?");endereco=input.next();System.out.println(endereco);Statementst=con.createStatement();a+=" Where idalunos = 1";//aqui dá problema, pois ele dá erro de sintaxea+=" Insert Into alunos(endereco) ";a+=" values(endereco)";//aqui é o grande problema, pois eu quero passar o conteúdo da variável endereço...st.executeUpdate(a);return;}}}}
AITech_IX
//a classe que contem o main
importjava.sql.SQLException;importjava.util.Scanner;publicclassIniciar{publicstaticvoidmain(String[]args){Conexao.getConnection();alunosc=newalunos();Scannerinput=newScanner(System.in);System.out.println(Conexao.status);intopcao=1;while(opcao!=4){System.out.println("");System.out.println("Digite o numero correspondente a tarefa?");System.out.println("0 - Alterar; 1 - Excluir");System.out.println("2 - Incluir; 3 - Buscar;");System.out.println("4 - Sair");opcao=input.nextInt();switch(opcao){case0:{try{c.alterar(opcao);}catch(SQLExceptione){e.printStackTrace();}return;}case1:{try{c.excluir(opcao);}catch(SQLExceptione){e.printStackTrace();}return;}case2:{try{c.incluir(opcao);}catch(SQLExceptione){e.printStackTrace();}return;}case3:{try{c.buscar(opcao);}catch(SQLExceptione){e.printStackTrace();}return;}}//fim switch}//fim while}}
Você está concatenando o sql de maneira errada, por isto a sintaxe está correta
a+=" Where idalunos = 1";//aquidáproblema,poiseledáerrodesintaxea+=" Insert Into alunos(endereco) ";a+=" values(endereco)";//aquiéograndeproblema,poiseuqueropassaroconteúdodavariávelendereço...
Vamos assumir que você tenha uma tabela chamada alunos e o campo a ser alterado é endereço…
Então o sql para isto seria: UPDATE alunos SET endereco = ‘blablabla’;
então modificando seu código seria algo do tipo:
a += " UPDATE alunos";
a += " SET endereco = '" + endereco + "'";
a += " WHERE idalunos = 1;";
desta maneira o aluno com id = 1 terá o endereço atualizado