Ajuda problemas com SQL ao tentar atualizar

Estou montando um sistema online de hotelaria para o meu TCC e para a parte dos clientes so falta conseguir edita-los (edição no SQL) so que ele continua sempre me mostrando o
seguinte erro cujo qual nao entendo nada:

"#{clienteControl.atualizaCliente(clienteControl.cliente)}": DAO.DAOException: Erro ao atualizar dados No value specified for parameter 5

nao entendo esse no value for parameter 5 pois o cliente so recebe 4 parametros que sao o codigo, o nome, o telefone e o rg como podem ver abaixo no DAO dos clientes:

public void atualizar(Cliente cliente) throws DAOException {
		PreparedStatement ps = null;
		Connection conn = null;
		if (cliente == null)
			throw new DAOException("O valor passado não pode ser nulo");
		try {
			String SQL = "UDPATE clientes SET " + "codigo=?" + "nome=?," + "telefone=?,"
					+ "rg=?," + " WHERE codigo=?";
			conn = this.conn;
			ps = conn.prepareStatement(SQL);
                        ps.setInt(1, cliente.getCodigo());
			ps.setString(2, cliente.getNome());
			ps.setString(3, cliente.getTelefone());
			ps.setString(4, cliente.getRg());
			ps.executeUpdate();
		} catch (SQLException sqle) {
			throw new DAOException("Erro ao atualizar dados "
					+ sqle.getMessage());
		} finally {
			ConnectionFactory.closeConnection(conn, ps);
		}
	}

hebert voce tem razao nao sabia que o ultimo tambem era um parametro faz meses que nao mexo com isso porque tava em ferias mas entao tenho que colocar de novo o cliente.getCodigo()?

4?

[quote]“codigo=?” + “nome=?,” + “telefone=?,”
+ “rg=?,” + " WHERE codigo=?"[/quote]To vendo 5…

putz voce tem toda razao hebert poior que isso é vergonhoso de tao facil rs mas nem me dei conta que o ultimo ali tambem era um parametro obrigado pelas dicas vo tenta resolver aqui agora