سؤال

النظر في المنشور الذي قمت بإيصارك حول الأداء GUID المتسلسل على إطار Microsoft.NET (انظر ما هو تحسين أداء GUID المتسلسل فوق GUID القياسي؟) هل لدى شخص ما تنفيذ جافا مناسبة ومن المؤكد وسريع وسريع العمل من نفس الخوارزمية المنفذة في نظام التشغيل Windows DLLs؟

تحيات ماسيمو

هل كانت مفيدة؟

المحلول

انظر هذه المقالة: http://www.informit.com/articles/article.aspx؟p=25862&seqnum=7. (مرتبط بتاريخ 7).

أنه يحتوي على خوارزمية لما يشيره المؤلف إلى Guids "مشط"؛ أعيد إنتاج كوده (SQL) أدناه:

SET @aGuid = CAST(CAST(NEWID() AS BINARY(10)) 
+ CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER)

تافهة لتحويل هذا إلى جافا، أو لغتك المطلوبة. المبدأ الأساسي الواضح هو جعل تاريخ مكون من GUID. المادة بأكملها قراءة جيدة، كما يفعل تحليلا لطيفا لأداء الأساليب المختلفة.

نصائح أخرى

للحصول على UUIDs المتسلسل، كنت تبحث عن إصدار 1 Uuid. مولد java uuid يبدو أن المشروع يعمل بشكل جيد للغاية وهو سهل الاستخدام:

Generators.timeBasedGenerator().generate().toString()

هذه الصفحة يرتبط بضعة ملفات 1 (متسلسل) تطبيقات UUID في Java:http://johannburkard.de/blog/programming/java/java-uuid-generators-compared.html.

يمكنني استخدام هذا لإنشاء UUIDs (معرفات فريدة عالمية) ل DTOS التي تعمل كمسكات بديلة للمجموعات العابرة. لا أعرف ما إذا كان الأمر نفسه، لكن قد يشير إليك في الاتجاه الصحيح.

import java.util.UUID;
...
    private String uuid=null;
...
    protected String getUuid() {
        synchronized (this) {
          if (null ==uuid) {
            uuid = UUID.randomUUID().toString();
          }
          return uuid;
        }
      }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top