Pregunta

Teniendo en cuenta el post que he hecho sobre el rendimiento GUID secuencial en el marco Microsoft.NET (ver ¿Qué son la mejora del rendimiento de Guid secuencial sobre Guid estándar? ) ¿alguien tiene una implementación Java de trabajo adecuado, seguro, rápido y bien de la misma algoritmo implementado en los archivos DLL de Windows?

Saludos Massimo

¿Fue útil?

Solución

Vea este artículo: http://www.informit.com/ artículos / article.aspx? p = 25862 y SEQNUM = 7 (vinculado a la página 7).

Contiene un algoritmo para lo que el autor se refiere como "COMB" GUID; Reproduzco su código (SQL) a continuación:

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

Trivial a convertir esto en Java, o el idioma que desee. El principio subyacente obvia es hacer que la fecha de un componente del GUID. Todo el artículo es una buena lectura, como lo hace un buen análisis de la evolución de los distintos enfoques.

Otros consejos

Para UUID secuenciales, que busca un UUID versión 1. proyecto Java UUID generador parece que funciona bastante bien y es bastante fácil de usar:

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

Esta página enlaza a un par de la versión 1 implementaciones (secuencial) UUID en Java: http://johannburkard.de/blog/programming/java/Java -UUID-generadores-compared.html

Lo utilizo para generar UUID (universalmente identificadores únicos) para mis dtos que actúan como claves suplentes para colecciones transitorios. No sé si es lo mismo, pero se puede apuntar en la dirección correcta.

import java.util.UUID;
...
    private String uuid=null;
...
    protected String getUuid() {
        synchronized (this) {
          if (null ==uuid) {
            uuid = UUID.randomUUID().toString();
          }
          return uuid;
        }
      }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top