12

Microsoft.NET フレームワークでのシーケンシャル GUID のパフォーマンスについて私が作成した投稿を考慮すると (標準 Guid に対する Sequential Guid のパフォーマンスの向上は何ですか? を参照してください)、誰かが同じアルゴリズムの適切で、確実で、高速で、うまく機能する Java 実装を持っていますか? Windows DLL に実装されていますか?

よろしくマッシモ

4

5 に答える 5

6

この記事を参照してください: http://www.informit.com/articles/article.aspx?p=25862&seqNum=7 (7 ページにリンク)。

これには、著者が「COMB」Guid と呼ぶアルゴリズムが含まれています。彼のコード (SQL) を以下に再現します。

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

これを Java または目的の言語に変換するのは簡単です。明らかな基本原則は、日付を Guid のコンポーネントにすることです。彼はさまざまなアプローチのパフォーマンスについて優れた分析を行っているため、記事全体を読むのに適しています。

于 2010-02-08T12:41:19.007 に答える
3

連続する UUID の場合、バージョン 1 の UUID を探しています。Java UUID Generatorプロジェクトは非常にうまく機能しているようで、非常に使いやすいです。

Generators.timeBasedGenerator().generate().toString()
于 2011-05-27T17:11:49.440 に答える
2

このページは、Java でのバージョン 1 (シーケンシャル) UUID 実装のいくつかにリンクしています: http://johannburkard.de/blog/programming/java/Java-UUID-generators-compared.html

于 2010-11-11T09:50:34.700 に答える
-3

これを使用して、一時的なコレクションの代理キーとして機能する DTO の UUID (Universally Unique ID) を生成します。それが同じことかどうかはわかりませんが、正しい方向にあなたを向けるかもしれません.

import java.util.UUID;
...
    private String uuid=null;
...
    protected String getUuid() {
        synchronized (this) {
          if (null ==uuid) {
            uuid = UUID.randomUUID().toString();
          }
          return uuid;
        }
      }
于 2010-02-05T12:22:24.783 に答える