Ich habe Beziehung, wo es für jeden Datensatz BYTEA Spalt (UTF-8) -Codierung 3 Zahlen in der folgenden Reihenfolge ist:JAVA JDBC-Treiber PostgreSQL: parse Zahlen als BYTEA Objekt codierte
Bytes 0-1: Nummer 1
Bytes 2-3: Nummer 2
Bytes 4-6: Nummer 3
Wie kann ich die binären Daten zu lesbaren Zahlen analysieren?
Zur Zeit habe ich diese und nicht wissen, wie es weitergeht:
Class.forName(dbDriver);
Connection connection = DriverManager.getConnection(dbUrl, dbUser, dbPass);
Statement st = connection.createStatement();
String query = "SELECT ...";
ResultSet rs = st.executeQuery(query);
while (rs.next()) {
byte[] data = rs.getBytes(1);
//TODO Parse
}
Danke,
Sie scheinen Byte 4 zweimal zu verwenden. Ich nahm an, dass das ein Tippfehler ist, und diese Nummer 3 ist von Bytes 5-6, nicht 4-6, d. H. 2 Bytes lang, gleich wie Nummer 1 und 2. – Andreas
@Andreas Hallo, mein Fehler. Ich habe bearbeitet. die ersten 2 sind 2 Bytes, die dritte ist 3 Bytes und kann negativ sein. – michael
Wenn nur die dritte Zahl negativ sein kann, müssen Sie das Zahlenformat wirklich besser definieren. Z.B. Sind die Zahlen in Binärform gespeichert? Wenn ja, sind vorzeichenbehaftete Nummern in [Zweierkomplement] gespeichert (https://en.wikipedia.org/wiki/Two%27s_complement)? Oder wird das Zeichen selbst als Byte gespeichert? Wenn nicht binär, sind die Zahlen als Text gespeichert? Oder [BCD] (https://en.wikipedia.org/wiki/Binary-coded_decimal) (gepackt oder ausgepackt)? Oder etwas anderes? – Andreas