Problemas com o executeUpdate()

Bom dia a todos, estou com o seguinte problema. tenho um método chamado inserirFuncionario e nele será inserido as informações de um funcionario no banco de dados mysql. o problema é que, a cada atributo, é inserido em uma nova linha dentro do banco. ou seja. se tenho funcionario de nome “roberto” , setor " ti" e ramal " 3000" , a 1a linha do banco o nome fica roberto , o setor fica null e o ramal fica null, a 2a linha o nome fica null o setor fica ti e o ramal fica null, e a 3a linha o nome fica null, o setor null, e o ramal fica 3000. Alguém poderia me ajudar ?


public void inserirFuncionario(Connection conexao,
			FuncionarioBean funcionario) {
		try {
			Statement executaSQL = conexao.createStatement();

			String query = "INSERT INTO Funcionario(Nome)" + "VALUE ('"
					+ funcionario.getNome() + "')";

			int result = executaSQL.executeUpdate(query);

			if (result == 1) {

				System.out.println("Inserido nome com sucesso\n");
				funcionario.setNome("");

			} else {
				System.out.println("Erro na inclusão do nome\n");
				funcionario.setNome("");
			}

			query = "INSERT INTO Funcionario(setor)" + "VALUE ('"
					+ funcionario.getSetor() + "')";

			result = executaSQL.executeUpdate(query);

			if (result == 1) {

				System.out.println("Inserido setor com sucesso\n");
				funcionario.setNome("");

			} else {
				System.out.println("Erro na inclusão do setor\n");
				funcionario.setNome("");
			}

			query = "INSERT INTO Funcionario(Ramal)" + "VALUE ('"
					+ funcionario.getRamal() + "')";

			result = executaSQL.executeUpdate(query);

			if (result == 1) {

				System.out.println("Inserido ramal com sucesso\n");
				funcionario.setNome("");

			} else {
				System.out.println("Erro na inclusão do ramal\n");
				funcionario.setNome("");
			}

			executaSQL.close();
		} catch (SQLException sqlex) {
			
		}

	}

eh claro… e vai ficar mesmo

vc esta executando o insert 3x… e cada vez passando soh 1 valor nele

Qual erro está ocorrendo?

porque não tenta algo assim:

String query = "INSERT INTO Funcionario(Nome, Setor, Ramal)" + 
                      "VALUES ('" + funcionario.getNome() + "',"+
                                    "'" + funcionario.getSetor() + "',"+
                                    "'" + funcionario.getRamal() + "')";

[]´s

o q ele quer eh realmente inserir 3 registros, onde cada um tem um valor. Bom nao sei qual a utilidade disso, mais nao interessa. O que parece de cara nao tem nada errado, se tem, diga-nos qual eh o problema.

Opa Euclides

Do jeito q vc ta querendo faer, vc está uma nova linha a cada ‘query’.
então,. ou vc faz como o Yorgan disse, ou se quer controlar em tempo de execução, passo a passo,
vc pode fazer um executeUpdate com a String Update e não INSERT INTO. usando a sintaxe:

UPDATE NomeDaTabela SET campo1=valor1, campoN=valorN WHERE condicao.

Abraços

Realmente não faz sentido fazer a inserção de uma linha em 3 passos. Se é para tratar os dados e não inserir campos nulos, isso não vai fazer diferença para a linha, mas você pode trata-los antes de enviar para o comando SQL.
E ainda recomendo que utilize PreparedStatement. O código vai ficar mais limpo, algo como:

String sql = "INSERT INTO Funcionario(codigo, nome, setor, ramal) VALUES (?,?,?,?)" ;             
PreparedStatement ps = c.prepareStatement(sql);       
//Aqui você seta os valores dos ?     
ps.setInt(1, funcionario.getCodigo() );     
ps.setString(2, funcionario.getCodigo() );     
ps.setString(3, funcionario.getCodigo() );     
ps.setString(4, funcionario.getCodigo() );     
ps.executeQuery(); 

[]´s