2011-01-13 14 views
0

Do berkeley db hat autoincrement?autotronicement berkeley db oder liste

Ich benutze Java für die Prüfung,

sah ich das Beispiel: collections.ship.tuple.Sample wo der Autor eine StoredSortedMap verwendet die Daten zu handhaben, so muss er jedes Mal einen Schlüssel setzen.

Ich würde gerne wissen, ob die Berkeley Autoincrement Zeug hat. hier

Oder wenn es eine Art von Liste gespeichert und abgerufen werden ...

Antwort

4

David Segleau, Director of Product Management für Berkeley DB. Generell empfehlen wir, Fragen in den Berkeley DB-Foren zu stellen. Sie finden dort eine große Gemeinschaft aktiver Berkeley DB-Anwendungsentwickler.

Die kurze Antwort auf Ihre Frage ist, dass Berkeley DB Auto-Inkrement-Dienste zur Verfügung hat. Sie müssen nur entscheiden, wie Sie sie verwenden möchten. Zu diesen Optionen gehören:

  1. Geben Sie den Code in Ihre Anwendung ein. Da es sich bei BDB um eine Bibliothek handelt, die mit Ihrer Anwendung verknüpft ist, steuern viele Benutzer einfach die Auto-Inkrement-Schlüsselgenerierung in der Anwendung selbst. Natürlich kann dies etwas komplizierter sein, wenn Sie eine Multithread- oder Multiprozess-Anwendung entwickeln.
  2. Verwenden Sie die Berkeley DB-Sequenz, um Auto-Inkrement zu verwalten. Wenn Sie die grundlegende Key/Value-Pair-API oder die Collections-API (wie in Ihrem Fall) verwenden, können Sie eine BDB-Sequenz erstellen, die entsprechenden Routinen aufrufen, um den nächsten Wert zu erhalten und diesen Wert vor dem Schreiben dem Schlüssel zuweisen der Datensatz. Da BDB-Sequenzen transaktionsgeschützt sind und über eine BDB-Umgebung hinweg funktionieren, werden alle Multi-Threading- oder Multi-Prozess-Probleme von der BDB-Bibliothek übernommen. Weitere Informationen zu BDB-Sequenzen finden Sie in Kapitel 19 des BDB-Referenzhandbuchs und in der Java API Programmers Reference Guide.
  3. Wenn Sie die DPL-API (Direct Persistence Layer) verwenden, können Sie den Primärschlüssel als Sequenz definieren. Die DPL wird dann automatisch dafür sorgen, dass der Schlüsselwert während einer Operation put() inkrementiert wird.

Ich hoffe, das war hilfreich.

Grüße,

Dave