Gelöst Location und Inventory in Datenbank speichern.

Dieses Thema im Forum "Programmierung" wurde erstellt von Thonny, 26. Juli 2016.

  1. Thonny
    Offline

    Thonny

    Registriert seit:
    22. Juli 2016
    Beiträge:
    12
    Ort:
    Itzehoe
    Minecraft:
    Thonny
    Folgendes Szenario,

    Ich habe eine HashMap<Location, Inventory>.

    Diese soll in die Datenbank. Location ist kein Problem, allerdings ist das Inventory ein Problem. Wie bekomme ich das Inventar in die Datenbank ohne Schäden?

    Lösung: byte[]
    Code (Text):
    1.  
    2. private byte[] serialieInventory(Inventory inv) {
    3.      ByteArrayOutputStream binaryFormatter = new ByteArrayOutputStream();
    4.      ObjectOutputStream binaryStream;
    5.      try {
    6.        binaryStream = new ObjectOutputStream(binaryFormatter);
    7.        binaryStream.writeObject(inv.getContents());
    8.      } catch (Exception ex) {
    9.        ex.printStackTrace();
    10.      }
    11.      return binaryFormatter.toByteArray();
    12.    }
    13.  


    Mit einem leerem Inventar funktioniert das, sobald da aber irgendwelche Items drinnen sind bekomme ich eine NotSerializableException.

    Aber wie bekomme ich nun dieses Item unbeschädigt in die Datenbank.

    Der Verlust von Metadaten ist dabei unverzeihlich, Vorher und nachher muss schon 100% Identisch sein.

    Wie kann man das realisieren​
     
    #1
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
  3. Thonny
    Offline

    Thonny

    Registriert seit:
    22. Juli 2016
    Beiträge:
    12
    Ort:
    Itzehoe
    Minecraft:
    Thonny
    #3
  4. Dunios
    Offline

    Dunios

    Registriert seit:
    27. Juni 2016
    Beiträge:
    8
  5. Thonny
    Offline

    Thonny

    Registriert seit:
    22. Juli 2016
    Beiträge:
    12
    Ort:
    Itzehoe
    Minecraft:
    Thonny
    @Dunios
    Lustig, den hatte ich auch schon und ebenfalls mit einer Google-Anfrage.
     
    #5
  6. UnityGaming
    Offline

    UnityGaming

    Registriert seit:
    25. Oktober 2015
    Beiträge:
    89
    Ort:
    Hohenfels
    Minecraft:
    FastFelix771
    Bukkit hat extra Streams zum serializen von Items und Inventories. BukkitObjectInputStream & BukkitObjectOutputStream
     
    #6
    jensIO und Thonny gefällt das.
  7. Thonny
    Offline

    Thonny

    Registriert seit:
    22. Juli 2016
    Beiträge:
    12
    Ort:
    Itzehoe
    Minecraft:
    Thonny
    Okay @UnityGaming

    Man lernt ja nie aus. Das Thema ist somit meinerseits erledigt.
     
    #7