Frage

In Anbetracht der Post habe ich über die sequentielle guid Leistung gemacht haben auf Microsoft.NET Framework (siehe Was die Leistungsverbesserung von Sequential Guid über Standard Guid ist? ) hat jemand eine richtige, sicher, schnell und gut funktionierende Java-Implementierung der gleichen Algorithmus implementiert in dem Windows-DLLs?

Viele Grüße Massimo

War es hilfreich?

Lösung

Lesen Sie diesen Artikel: http://www.informit.com/ Artikel / article.aspx? p = 25862 & SEQNUM = 7 (in Verbindung mit Seite 7).

Es enthält einen Algorithmus für das, was der Autor als „COMB“ Guids; Ich gebe seinen Code (SQL) unter:

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

Trivial dies zu Java konvertieren, oder die gewünschten Sprache. Das offensichtliche zugrunde liegende Prinzip ist das Datum, eine Komponente des Guid zu machen. Der gesamte Artikel ist gut zu lesen, als er eine schöne Analyse der Leistung der verschiedenen Ansätze der Fall ist.

Andere Tipps

Für sequenzielle UUIDs, Sie suchen nach einer Version 1 UUID. Java UUID Generator Projekt scheint ganz gut zu funktionieren und ist ziemlich einfach zu bedienen:

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

Diese Seite Links zu ein paar Version 1 (sequenziell) UUID-Implementierungen in Java: http://johannburkard.de/blog/programming/java/Java -UUID-Generatoren-compared.html

Ich benutze diese UUID zu generieren (Universally Unique IDs) für meinen DTOs, das für vorübergehende Sammlungen als Ersatzschlüssel handeln. Weiß nicht, ob es die gleiche Sache, aber es kann Sie in die richtige Richtung zeigen.

import java.util.UUID;
...
    private String uuid=null;
...
    protected String getUuid() {
        synchronized (this) {
          if (null ==uuid) {
            uuid = UUID.randomUUID().toString();
          }
          return uuid;
        }
      }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top