try {
Class.forName("com.mysql.jdbc.Driver");
//criando uma variavel
Connection conn;
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/novobanco?autoReconnect=true&useSSL=false", "root", "");
// CRIANDO STRING PAA RECEBER NO BANCO
String query;
PreparedStatement stmt;
if(jTextField1.getText().equals(""))
{
//CRIA STRING PARA RECEBER NO BANCO
query = "INSERT INTO funcionario (nome,sexo,idade) VALUES(?,?,?)";
//CRIA O COMANDO
stmt = conn.prepareStatement(query);
//seta valores na string de inserçã
stmt.setString(1,jTextField1.getText());
stmt.setString(2,jTextField2.getText());
stmt.setString(3,jTextField3.getText());
}else{
//CRIA STRING PARA RECEBER NO BANCO
query = "UPDATE funcionario SET nome=?, sexo=?, idade=? ";
}
//CRIA O COMANDO
stmt = conn.prepareStatement(query);
//seta valores na string de inserçã
stmt.setString(1,jTextField1.getText());
stmt.setString(2,jTextField2.getText());
stmt.setString(3,jTextField3.getText());
//executa o comando no banco de dados
stmt.executeUpdate();
//fecha comando e conexão
stmt.close();
conn.close();
} catch (ClassNotFoundException ex) {
System.out.println("nao foi possivel encontrar a classe");
} catch (SQLException e) {
System.out.println("ocorreu um erro de sql:" + e);
}
}
Galera sou iniciante, gostaria de tirar uma dúvida, o pq do meu codigo está setando o mesmo nome idade e sexo para todas as linhas e colunas do meu bda, e como resolver essa bronca!?
A
4 Respostas
1 like
Seu código de UPDATE não está informando qual registro ele deve atualizar, por este motivo ele atualiza todos os registros deixando todos os registros iguais!
Exemplo de update:
UPDATE TABELA SET CAMPO = VALOR WHERE CAMPODECOMPARACAO = VALORDOCAMPO;
UPDATE COR SET NOMECOR = 'BRANCO' WHERE IDCOR = 1;
Tá faltando o WHERE na instrução update.
A
QUANDO COLO O WHERE FICA: NO VALUE SPECIFIED FOR PARAMETER 4_texto em itálico_
Como que estão as tabelas?
Criou as chaves primarias?
É que nem o @Jonathan_Medeiros escreveu:
UPDATE tabela SET campo=? WHERE chaveprimaria=?
E tem que ter mais um stmt, ou seja, stmt.setInt(4, campoDoId.getValor());. A ideia é essa.
Criado 24 de abril de 2017
Ultima resposta 24 de abr. de 2017
Respostas 4
Participantes 3