6 Stimmen

Primärschlüssel ohne Verwendung der Datenbank generieren

Ich bin vor kurzem auf eine Frage gestoßen, in der es um die "Generierung von Primärschlüsseln in einer Clusterumgebung mit 5 App-Servern - [OAS Version 10] ohne Verwendung einer Datenbank" ging.

Normalerweise generieren wir PK durch eine DB-Sequenz oder Speichern der Werte in einer Datenbanktabelle und dann mit einem SP, um den neuen PK-Wert zu generieren... Jedoch aktuelle Anforderung ist, Primärschlüssel für meine Anwendung ohne Verweis auf die Datenbank mit JDK 1.4 zu generieren.

Ich benötige die Hilfe von Experten, um bessere Lösungen zu finden.

Danke,

0voto

Muhammad Saifuddin Punkte 1284

Bei Verwendung des Statement-Objekts können Sie die Methode statement.getGeneratedKeys(); aufrufen, um die automatisch generierten Schlüssel abzurufen, die bei der Ausführung dieses Statement-Objekts erzeugt wurden.

[Java-Dokument](http://download-llnw.oracle.com/javase/1.4.2/docs/api/java/sql/Statement.html#getGeneratedKeys())

0voto

TTT Punkte 2355

So wird es in MongoDB gemacht: http://www.mongodb.org/display/DOCS/Object+IDs

Sie enthalten einen Zeitstempel.

Sie können aber auch Oracle Express installieren und Sequenzen auswählen, Sie können in großen Mengen auswählen:

SQL> select mysequence.nextval from dual connect by level < 20;

NEXTVAL

     1
     2
     3
     4
     5
    ..  
    20

Warum dürfen Sie die Datenbank nicht benutzen? Geld (Oracle Express ist kostenlos) oder eine einzige Fehlerquelle? Oder wollen Sie in Zukunft andere Datenbanken als Oracle unterstützen?

0voto

Farrukh Chishti Punkte 6212

Seine Auslieferung erfolgt in vielen OOB Federbasiert Anwendungen wie Hybris -
En typeCode ist der Name Ihrer Tabelle wie, User , Address , usw.

private PK generatePkForCode(final String typeCode)
    {
        final TypeInfoMap persistenceInfo = Registry.getCurrentTenant().getPersistenceManager().getPersistenceInfo(typeCode);
        return PK.createCounterPK(persistenceInfo.getItemTypeCode());
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X