Последовательное руководство в Java
Учитывая сообщение, которое я сделал о последовательных рекомендациях в рамках Microsoft.NET(см. Что улучшает производительность Sequential Guid по стандарту Guid?) у кого-то есть правильная, верная, быстрая и хорошо работающая реализация Java того же алгоритма, реализованного в DLL файлах Windows?
Отношения
Massimo
Ответы
Ответ 1
Смотрите эту статью: http://www.informit.com/articles/article.aspx?p=25862&seqNum=7 (связанный с Страница 7).
Он содержит алгоритм, на который автор ссылается как "COMB" Guids; Я воспроизвожу его код (SQL) ниже:
SET @aGuid = CAST(CAST(NEWID() AS BINARY(10))
+ CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER)
Trivial, чтобы преобразовать это в Java или на ваш желаемый язык. Очевидным основополагающим принципом является включение даты в состав Руководства. Вся статья хорошо читается, так как он хорошо анализирует производительность различных подходов.
Ответ 2
Для последовательных UUID вы ищете UUID версии 1. Проект Java UUID Generator работает довольно хорошо и довольно прост в использовании:
Generators.timeBasedGenerator().generate().toString()
Ответ 3
Эта страница ссылается на пару реализаций UUID версии 1 (последовательный) в Java:
http://johannburkard.de/blog/programming/java/Java-UUID-generators-compared.html
Ответ 4
Я использую это для создания UUID (универсально уникальных идентификаторов) для моих DTO, которые действуют как суррогатные ключи для временных коллекций. Не знаю, если это одно и то же, но оно может указать вам в правильном направлении.
import java.util.UUID;
...
private String uuid=null;
...
protected String getUuid() {
synchronized (this) {
if (null ==uuid) {
uuid = UUID.randomUUID().toString();
}
return uuid;
}
}