Java Objekte in einer Datenbank speichern

funlow

Mitglied
Hallo,

meine Frage ist kann man Objekte in einer Datenbank speichern ?

Es geht hier um das mal ein bisschen näher auszuführen um eine Spielkarte für ein Spiel die in einer Datenbank gespeichert werden soll. Man kann das zwar auch in einer java Klasse speichern, aber da Nutzer selber noch Karten erstellen sollen finde ich es Sinnvoller in einer Datenbank zu speichern in Form eines String Int o.ä. . Da diese Karte mit einem Objekt dargestellt wird ist es möglich, ein solches Objekt in der Datenbank ohne selber dafür die Codierung umständlich selber festzulegen, zu speichern und auch wieder wenn man die Karte laden möchte ein Objekt aus dem in der Datenbank gespeichertem String Int Wert zu erzeugen?

Habe irgendwie gelesen, das es mit Serializable mit einem Input und Output Stream möglich sein soll aber steig so noch nicht ganz durch

Vielen dank schon einmal für die Hilfe
 

Viktim

Bekanntes Mitglied
du kannst dir ja eine ID (vilt bietet sich hier der wert der Karte an) für jedes Bild überlegen (bsp: Ass = 1, Zwei = 2, Drei = 3 usw.) und in eine Tabelle Speichern.
In eine Andere Tabelle Speicherst du dann die Farben (auch nummeriert).

Und in der Tabelle Spielkarte stehen dann so sachen wie:

ID | Bezeichnung | BILD_ID | FARBE_ID
1 | Herz Ass | 1 | 1
2 | Herz Zwei | 2 | 1
3 | Herz Drei | 3 | 1

Ist so zwar kein Objekt aber Bevor du gar keine Antwort kriegst, sag ich dir lieber was womit du vieleicht etwas anfangen kannst :D
 

JStein52

Top Contributor
Das geht so sicher aber dann hast du genau das was du nicht wolltest: du musst die Codierung zum sichern und laden selber schreiben. Aber schau dir mal JPA (Java Persitency API) an. das ist eigentlich das was du willst.
 

funlow

Mitglied
Viktim dein Ansatz würde im Grunde gehen aber das ist genau das was ich vermeiden will da die Spielkarte( Es gibt hier um ein Spielbrett nicht um karten) aus Feldern besteht die eine Menge Eigenschaften haben, woraus sich für deine Lösung eine riesige Menge an Möglichkeiten ergeben die man abdecken muss.

Ich hab das ganze Jetzt sogar hinbekommen und über einen Byte.ArrayOutputStream realisiert sodass aus dem Objekt ein ByteArray erzeugt wird, das ich dann entweder mit den einzelnen Bytes die im Array liegen in der Datenbank speichern kann oder vielleicht auch das Array an sich ( Bin mir noch nicht sicher ob man das Array in der Datenbank speichern kann) Aus dem ByteArray kann man dann wieder über einen InputStream das Objekt mit dem ByteArray wiederherstellen.
Java:
package test;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ObjectInputStream;
import java.io.Serializable;

public class Test {

    /**
     * @param args the command line arguments
     * Hendrik
     */
    public static void main(String[] args) throws IOException, ClassNotFoundException {
     
      Human test = new Human(27,"Sven","Deutschland");
      ObjectOutputStream output;
      ObjectInputStream input;
  
      ByteArrayOutputStream os = new ByteArrayOutputStream(256);
      output = new ObjectOutputStream(os);
      output.writeObject(test);
      output.flush();
      byte[] testArray1 = new byte[256];
      testArray1 = os.toByteArray();
      byte[] testArray = new byte[256];
      for(int i = 0; i<testArray1.length;i++){

          System.out.println(testArray1[i]);
          testArray[i] = testArray1[i];
      }

      System.out.println(testArray);
      output.close();
     
// InputStream
      input = new ObjectInputStream(new ByteArrayInputStream(testArray));
      Human in = (Human) input.readObject();
      System.out.println("Alter:" + in.Age +"Name:" + in.Name + "Land:" + in.Country);
     
       
    }
   
}

class Human implements Serializable{
   private static final long serialVersionUID = 1125135436L;
   int Age;
   String Name;
   String Country;
  
  public Human(int Age, String Name, String Country){
      this.Age=Age;
      this.Name=Name;
      this.Country=Country;
  }
}

Das ist jetzt das was ich habe das funktioniert auch so nur bin ich mir auch nicht wirklich sicher welche größe das ByteArray in diesem fall haben muss, ob das jetzt von der Komplexität der Klasse abhängig ist oder ob das sogar egal ist
 

JStein52

Top Contributor
das ich dann entweder mit den einzelnen Bytes die im Array liegen in der Datenbank speichern kann oder vielleicht auch das Array an sich ( Bin mir noch nicht sicher ob man das Array in der Datenbank speichern kann)
Das klingt ein bisschen verworren. Du könntest natürlich so ein ByteArray als BLOB in der Datenbank speichern aber was hast du dann davon ? Wenn du deine Objekte nur speichern willst um sie z.B. beim nächsten Programmaufruf wieder zur Verfügung zu haben ist das was du jetzt gemacht hast der richtige Weg.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
P Reicht finally nicht um DB connections zu schließen in (altem) Java? Datenbankprogrammierung 4
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
U SQL Server mit Java verbinden Datenbankprogrammierung 5
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Noobfrage: Konvertierung von SQL-Datentyp 'timestamp with time zone' in Java-Datentyp Datenbankprogrammierung 3
Zrebna Lediglich interne DB-Verbindungen (Connections) auslesen - mittels Java Datenbankprogrammierung 4
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
berserkerdq2 Was kann passieren, wenn ich in java einstelle, dass der Fremdschüssel ein Attribut ist, welches selber kein Primärschlüssel ist? Datenbankprogrammierung 4
berserkerdq2 Foreign key einstellen java Datenbankprogrammierung 4
nikgo Java SQL Ausgabe in Liste o.ä. abspeichern um mit dem Ergbnis "zu arbeiten"? Datenbankprogrammierung 5
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
S ODBC Treiber in Java Editor einbinden Datenbankprogrammierung 3
H Oracle Resize eines Images in Java und Rückgabe des Image als BLOB an die Oracle Datebank Datenbankprogrammierung 14
H Java Class zum komprimieren von Jpeg-Images zum Einbinden in Oracle DB - Bild als blob (in und out) Datenbankprogrammierung 23
V SQLite java.sql.SQLException: no such column: Datenbankprogrammierung 18
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
D Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA) Datenbankprogrammierung 0
Slaylen Java List Suchen mit eigenem Generischen Datentyp Datenbankprogrammierung 10
N java sql abfrage bestimmer Datumszeitraum Datenbankprogrammierung 9
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
P USER Management in SQL übergreifend auf JAVA Programm Datenbankprogrammierung 1
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
N Java Abfrage über GUI, Daten hinzufügen Datenbankprogrammierung 54
N Java, sql, jar, JDBC-Treiber in Classpath Datenbankprogrammierung 8
N java SQL JAR - Probleme Datenbankprogrammierung 18
N SQL Datenbank Spalte in Java Array Datenbankprogrammierung 2
N SQL-Statement Java Variable in SQL DB einfügen Datenbankprogrammierung 1
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
T Java Spiel Daten speichern Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
L Mybatis Datenbankabfragen in Java Datenbankprogrammierung 1
H MariaDB-Zugriff mittels Java SE Datenbankprogrammierung 3
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
S Datenbank MySQL und Java Datenbankprogrammierung 8
S Beispiel-Blockchain + GUI mit Java erstellen Datenbankprogrammierung 0
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
Trèfle SQLite SQL-Java Änderungen ausgeben Datenbankprogrammierung 1
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
A MySQL Select und Insert in Java Datenbankprogrammierung 15
C Derby/JavaDB Auf Variable aus Link in java server page zugreifen Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
F MySQL Einfügen von Datensätzen über Java Datenbankprogrammierung 8
B CSV in Java einbinden und Rechnung Datenbankprogrammierung 7
L Speicherverbrauch Java Anwendung mit einer Datenbankanbindung Datenbankprogrammierung 19
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
L Java- Zähle alle Werte aus der Tabelle von aktiver Zelle Datenbankprogrammierung 12
S Datenbank/Java true/false Datenbankprogrammierung 8
S Java und SQL-Befehle Datenbankprogrammierung 6
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
L Datenbankprogrammierung mit Java und phpMyAdmin Datenbankprogrammierung 4
Korvinus Java mit Cassandra verbinden Datenbankprogrammierung 18
M SQL-Statement SQL mit Java, Update Fehler Datenbankprogrammierung 1
D Installation von MariaDB in java und eclipse Datenbankprogrammierung 2
H Datenbank Export mit Java Datenbankprogrammierung 3
I MariaDB-Verbindung in JAVA Datenbankprogrammierung 11
L Oracle Datenbank über Java aufrufen Datenbankprogrammierung 29
W Daten in Java intern abfragen Datenbankprogrammierung 1
W MySQL Ausgabe von Datenbank in Java-App Datenbankprogrammierung 6
D Java Datenbanken Datenbankprogrammierung 1
Y H2 H2 foreign key in Spark Java ausgeben Datenbankprogrammierung 1
J Java Eclipse Hilfe beim Programmieren Datenbankprogrammierung 7
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
R Java-Befehle/Operatoren für copy&paste Datenbankprogrammierung 2
C Mit asm laufende Java Anwendung manipulieren Datenbankprogrammierung 1
W Wie liest dieses Java-Programm der Compiler? Datenbankprogrammierung 3
K Java Datenbank auslesen Datenbankprogrammierung 8
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K HSQLDB .sql Script Aufruf über Java Datenbankprogrammierung 7
B Java Programm und Dantebank umlagern Datenbankprogrammierung 25
B MySQL bplaced Datenbank mit Java ansprechen Datenbankprogrammierung 11
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
O PostgreSQL Java Row Index erhalten Datenbankprogrammierung 1
dzim Cassandra Cluster DB und der Java-Treiber Datenbankprogrammierung 1
H Entity in Java implementieren Datenbankprogrammierung 13
V Fehler beim Generierung Fehler beim Generierung java.lang.ArrayIndexOutOfBoundsException: 0 Datenbankprogrammierung 12
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
D MySQL Many to Many Tabellen in Java abbilden? Datenbankprogrammierung 4
P Datanbank für Java-Programmierung Datenbankprogrammierung 10
F Java SQLite Error Datenbankprogrammierung 19
F SQL Datenbank an Java Code anbinden Datenbankprogrammierung 5
J Java 8 und Microsoft Access Database-Dateien(mdb) Datenbankprogrammierung 1
H HSQLDB Beim öffnen folgender Fehler: ... java.lang.NullPointerException Datenbankprogrammierung 1
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
M Verbindung von Java Programm zur Acccess Datenbank (mdb-Datei) Datenbankprogrammierung 0
M Feedback für neues Buch über "Java und Datenbanken" erwünscht Datenbankprogrammierung 8
M Wie übergebe ich Datenbankobjekte aus einer sql-Datenbank einer Java Klasse bzw. Instanz Datenbankprogrammierung 7
D Zeit von SQL nach Java Datenbankprogrammierung 2
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
M Java Datenbankanbindung funktioniert nicht Datenbankprogrammierung 4
N Wie in Java Zugriffe und Updates auf eine Datenbank regeln ? Datenbankprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben