Best Practice Integer-Zahlenfolge über mehrere Programmstarts

HarleyDavidson

Bekanntes Mitglied
Guten Morgen zusammen,
ich stehe vor der Aufgabe, eine Verarbeitungsapplikation zu schreiben,
die die erzeugte Datei mit einer eindeutigen Zahl versehen muss.
Ich benötige also eine Sequenz, deren letzten Stand auch nach Programmende persistent bleibt und beim nächsten Programmstart wieder abrufbar ist.
Auf der finalen Maschine habe ich leider keine Oracle zur Verfügung,
also muss ich die Sequenz (oder die letzte vergebene Zahl) irgendwo und irgendwie fest speichern.
Gibt es hier Best Practice - Ansätze?
Die letzte Zahl in einer Textdatei zu schreiben erscheint mir zu unsicher. Leider finde ich mit Google keine Lösung.

Ich freue mich über eure Vorschläge!
 

Thallius

Top Contributor
Was bedeutet für dich denn unsicher? Was soll denn passieren wenn du die Zahl in eine Datei schreibst was gefhrlich ist?
 

Thallius

Top Contributor
Manipulation kannst du durch einen Hash umgehen. Gegen Löschen kannst du sowiso nichts machen (ausser zumindest die Rechte entsprechend setzen das sie nur ein Root User löschen kann). Um sie vorm Löschen zu schützen must du sie schon übers Netz verschicken.
 

Viktim

Bekanntes Mitglied
mit file.exists() kannst du überprüfen ob die Datei vorhanden ist, und sie im zweifelsfall mit file.createNewFile() anlegen ;)
 

HarleyDavidson

Bekanntes Mitglied
Ich habe mich letztendlich für eine kleine SQLite Datenbank entschieden.
Mit dieser Lösung kann ich zusätzlich überprüfen, welche UID an welchem Tag verwendet wurde. Das ist performant und nimmt keinen Speicher durch zusätzliche Applikationen weg.

Hier mein Code:

Java:
package sqlite;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import main.Main;

public class SQLite_Util
{

    private static final String sql_insertNewValue = "insert into paketuid (datum) values (datetime('now', 'localtime'));";
    private static final String sql_getNewPaketUID = "select max(paketuid) from paketuid;";

    public static String getNewPaketUID()
    {
        String newPaketUID = "";
        Connection c = null;
        Statement stmt = null;
        try
        {
            Class.forName( "org.sqlite.JDBC" );
            c = DriverManager.getConnection( "jdbc:sqlite:paketuid.db" );

            //Neue UID generieren
            stmt = c.createStatement();
            stmt.executeUpdate( sql_insertNewValue );

            //Neuen Wert abholen
            ResultSet rs = stmt.executeQuery( sql_getNewPaketUID );
            if ( rs.next() )
            {
                newPaketUID = String.valueOf( rs.getInt( 1 ) );
            }
            else
            {
                throw new Exception( "Leeres Resultset beim Abrufen der neuen PaketUID" );
            }
        }
        catch ( Exception e )
        {
            Main.logger.error("Fehler beim Ermitteln der neuen PaketUID! " + e );
        }
        finally
        {
            try
            {
                if ( !stmt.isClosed() )
                {
                    stmt.close();
                }
                if ( !c.isClosed() )
                {
                    c.close();
                }
            }
            catch ( SQLException ex )
            {
                Main.logger.error( "Fehler beim Schliessen der Datenbank: " + ex );
            }

        }
        return newPaketUID;
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MCDragon IDEA IntelliJ Integer Number Too Long - Help Allgemeine Java-Themen 1
mrStudent The method append is not applicable for the arguments (Queue<Integer>, Queue<Integer>) Allgemeine Java-Themen 4
O JSON in Integer parsen Allgemeine Java-Themen 5
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
J Mit Lombok Integer Range prüfen Allgemeine Java-Themen 6
L Variablen Eigenes Objekt wie z.B. einen Integer zuweisen Allgemeine Java-Themen 3
R Datentypen Korrekte integer in Hex ASCII Konvertierung und serialisierung Allgemeine Java-Themen 1
B List<Integer> ist List<Double> ? Allgemeine Java-Themen 6
E String in Zahl umwandeln, ohne Befehl Integer.parseInt Allgemeine Java-Themen 3
J Eine bestimmte Zahl im Integer ändern Allgemeine Java-Themen 9
V Eingegeben String Splitten und in Integer umwandeln Allgemeine Java-Themen 2
J Transfer von Integer zwischen zwei Clients - RMI Allgemeine Java-Themen 4
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
X Integer.numberOfTrailingZeros() Allgemeine Java-Themen 1
K Array, Int expected, Integer found Allgemeine Java-Themen 5
B Transferable in String/Integer umwandeln Allgemeine Java-Themen 11
K Input/Output Integer.parseInt() an Textdateien anwenden Allgemeine Java-Themen 2
D Beste Collection für Integer Allgemeine Java-Themen 4
Zettelkasten Double --> Integer Allgemeine Java-Themen 4
M Datentypen ArrayList in Integer konvertieren Allgemeine Java-Themen 3
S Variablen Prüfen ob Number vom Typ Integer, Float, Double, ... ist Allgemeine Java-Themen 2
O Input/Output Textfeld: nur Integer annehmen Allgemeine Java-Themen 9
T int <-> integer, double <-> Double... Allgemeine Java-Themen 2
P JFormattedTextField für durch Semikolon getrennte Integer-Werte gesucht / Regulärer Ausdruck Allgemeine Java-Themen 3
GianaSisters Klassen ArrayList Index Integer int Allgemeine Java-Themen 5
G Datentypen JGoodies Binding und JSpinner mit Integer Allgemeine Java-Themen 2
L Problem mit Integer.parseInt Allgemeine Java-Themen 17
C Benchmark: ArrayList<Integer>, Integer[], int[] Allgemeine Java-Themen 10
Rudolf Aus Collection<Integer> eine Zahl machen Allgemeine Java-Themen 2
O Nach parse von String zu Integer verliere ich Programmablauf! Allgemeine Java-Themen 10
Z Cast von Long zu Integer funktionert nicht Allgemeine Java-Themen 3
E Zweidimensionales Array Integer[10 000][10 000] -> out of memory? Allgemeine Java-Themen 4
T Integer aus InputStream lesen Allgemeine Java-Themen 3
S String[] in Integer umwandeln Allgemeine Java-Themen 16
K Heap-Volllaufen bei ArrayList<Integer> Allgemeine Java-Themen 9
C Character in Integer Allgemeine Java-Themen 12
D Double to Integer - ist das möglich? Allgemeine Java-Themen 3
R Anführungszeichen Integer.valueOf(String).intValue(); Allgemeine Java-Themen 6
H Integer/String Allgemeine Java-Themen 9
MQue byte[] Array to Integer Allgemeine Java-Themen 4
J Mit mehrdimensionalen Integer-Arrays arbeiten Allgemeine Java-Themen 17
R Eigene ArrayList vom Typ Short, Integer oder Double Allgemeine Java-Themen 4
G erzeugen von "ArrayList<Integer>[][]" Allgemeine Java-Themen 7
M Integer.parseInt Allgemeine Java-Themen 4
G enum Integer zuweisen Allgemeine Java-Themen 14
G Integer aus String Allgemeine Java-Themen 4
X cannot convert from Object[] to Integer[] Allgemeine Java-Themen 2
B 16Bit Integer aus ByteArray im Little Endian Format Allgemeine Java-Themen 17
O java.lang.NumberFormatException für normalen integer Allgemeine Java-Themen 4
T Integer hhmm addieren Allgemeine Java-Themen 11
MQue Integer in String Allgemeine Java-Themen 2
G Datumswert String in Integer umwandeln Allgemeine Java-Themen 2
P Integer und Bit-operationen Allgemeine Java-Themen 21
M Java 1.4 und Integer Allgemeine Java-Themen 3
G ArrayList<String> to ArrayList<Integer Allgemeine Java-Themen 2
S Integer zu int konvertieren - JUnit Allgemeine Java-Themen 12
J Integer Array Wert vorhanden? Allgemeine Java-Themen 6
M String nach Integer und führende Nullen Allgemeine Java-Themen 6
B Plaintext Integer einlesen und verarbeiten Allgemeine Java-Themen 3
R cast Integer[] zu int[] Allgemeine Java-Themen 2
D byte nach integer? Allgemeine Java-Themen 4
MQue Object in Integer umwandeln Allgemeine Java-Themen 3
H Integer#valueOf(int) bei 1.4 Allgemeine Java-Themen 7
M Datenstrukrue, List<Map<Integer, Map<String, . Allgemeine Java-Themen 2
M Integer in String umwandeln Allgemeine Java-Themen 7
S Object nach Integer umwandeln Allgemeine Java-Themen 13
R Integer will sich nicht lesen lassen! Allgemeine Java-Themen 9
G Umwandlung Byte in Integer Allgemeine Java-Themen 12
M reflection Integer != int ? Allgemeine Java-Themen 3
P int != Integer Allgemeine Java-Themen 3
N Prüfen ob ein String in einen Integer umgewandelt werden kan Allgemeine Java-Themen 4
P Class zu Integer, String, Double etc. Allgemeine Java-Themen 11
S Integer-Zahlen in Excel-Sheet schreiben Allgemeine Java-Themen 10
T JNI: jcharArray: warning: cast to pointer from integer of. Allgemeine Java-Themen 5
R Float richtig in Integer ? Allgemeine Java-Themen 4
T Integer und TextFelder Allgemeine Java-Themen 3
S Integer-splitten für Abfrage. Allgemeine Java-Themen 4
M Index eines Arrays ermitteln und als Integer ausgeben Allgemeine Java-Themen 7
B Integer zählen bzw. speichern Allgemeine Java-Themen 3
H Array nimmt keinen in Integer konvertierten String auf! Allgemeine Java-Themen 26
H Prüfen, ob es sich um ein Integer handelt Allgemeine Java-Themen 4
J Integer.parseInt funktioniert nicht immer Allgemeine Java-Themen 3
G Nur Integer Werte in JTextField Allgemeine Java-Themen 4
V Typumwandlung Integer, Float etc in String Allgemeine Java-Themen 4
C String in Integer wandeln Allgemeine Java-Themen 17
N Eine stelle der Fibonacci-Zahlenfolge ausgeben. Allgemeine Java-Themen 4
Joew0815 Algorithmus - Zahlenfolge in 4 ähnliche Teile aufteilen Allgemeine Java-Themen 0
R In einem Byte-Array nach einer gewissen Zahlenfolge suchen Allgemeine Java-Themen 7
kodela Datenübergabe über Buttons Allgemeine Java-Themen 8
W Jar-File Start nur über Terminal Allgemeine Java-Themen 13
A ByteArray über Socket Allgemeine Java-Themen 3
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
I 2D-Grafik Vektor-Grafik über die Zwischenablage nach Adobe Illustrator transferieren Allgemeine Java-Themen 8
TheSkyRider Methode über DataInputStream "auslösen" Allgemeine Java-Themen 6
I OpenPDF erzeugt riesige PDFs, wenn Grafiken über PdfGraphics2D#drawImage gezeichnet werden Allgemeine Java-Themen 1
T Etikettendrucker über TCP-IP Allgemeine Java-Themen 1
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7

Ähnliche Java Themen


Oben