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!?

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);
        
        }
    }

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;
1 curtida

Tá faltando o WHERE na instrução update.

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.