class PreparedUpdate implements PacketHandler<BatchStatementPreparedUpdate> {
        @Override
        public Packet handle(PacketHandleTask task, BatchStatementPreparedUpdate packet) {<FILL_FUNCTION_BODY>}
    }

            ServerSession session = task.session;
            int commandId = packet.commandId;
            int size = packet.size;
            PreparedSQLStatement command = (PreparedSQLStatement) session.getCache(commandId);
            List<? extends CommandParameter> params = command.getParameters();
            int[] results = new int[size];
            AtomicInteger count = new AtomicInteger(size);
            LinkableTask[] subTasks = new LinkableTask[size];
            for (int i = 0; i < size; i++) {
                final int index = i;
                final Value[] values = packet.batchParameters.get(i);
                LinkableTask subTask = new LinkableTask() {
                    @Override
                    public void run() {
                        // 不能放到外面设置，否则只取到最后一项
                        for (int j = 0; j < values.length; j++) {
                            CommandParameter p = params.get(j);
                            p.setValue(values[j]);
                        }
                        submitYieldableCommand(task, command, results, count, index);
                    }
                };
                subTasks[i] = subTask;
            }
            packet.batchParameters.clear();
            task.si.submitTasks(subTasks);
            return null;
        
<methods>public non-sealed void <init>() ,public static PacketHandler#RAW getHandler(com.lealone.server.protocol.PacketType) ,public static PacketHandler#RAW getHandler(int) ,public static void register(com.lealone.server.protocol.PacketType, PacketHandler<? extends com.lealone.server.protocol.Packet>) <variables>private static PacketHandler#RAW[] handlers