7
votes

Voulez-vous stocker l'objet dans la base de données MySQL

J'ai une variable en Java quel type de retour est objet (java.lang.Object). Je souhaite stocker cette valeur de variable dans la base de données MySQL sans créer d'autre type de données primitive. Y a-t-il un type de données disponible dans MySQL lié à l'objet?


2 commentaires

Notez que ce n'est généralement pas une bonne idée de stocker un objet sérialisé dans une base de données (autre que peut-être temporairement) car une modification de la classe de l'objet pourrait rendre l'objet sérialisé stocké dans la base de données incompatible avec elle.


C'est sûr que cela ferait des choses faciles. Regarde dans orm ou owbms. en.wikipedia.org/wiki/Object-Relational_mapping et EN.Wikipedia.org/wiki/Object_database


4 Réponses :


2
votes

blob pourrait le faire. Serialize l'objet dans un tableau d'octets et insérez-le comme une blob.


0 commentaires

6
votes

Vous pouvez utiliser un blob pour stocker les données brutes, mais sinon non, MySQL n'a pas de type de données spécifiquement pour un objet Java.

comme une note latérale: vous ne devriez probablement pas stocker un objet brut dans la base de données, ce genre de vous empêche de faire une sorte de requête sur elle.


0 commentaires

3
votes

Vous devez faire sérialiser l'objet de toute façon, afin que vous puissiez sérialiser à XML ou JSON ASWELL. Un formulaire de stockage lisible humain est ce que je préférerais. Jetez un coup d'œil à XStream par exemple. Un excellent outil de threadsafe pour le marshalling / unmarshalling.

Je suppose bien sûr que votre objet est un haricot / pojo.


0 commentaires

0
votes

Je ne suis pas sûr que voulez-vous dire par objet (java.lang.object) code>. Mais je pense que si vous essayez JSON DataType dans MySQL, cela fonctionnera bien. XXX PRE>

ou P>

INSERT INTO person VALUES (JSON_OBJECT("pid",103,"name", "name3"));


0 commentaires