créer un objet flux de sortie à partir d'un objet
Je veux créer sur ObjectOutputStream
, mais je ne veux pas conserver l'objet dans un fichier, donc comment faire? Tous les tutoriels(que j'ai trouvé) dire uniquement sur le fichier de la manière:
FileOutputStream fos = new FileOutputStream("t.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(new Date());
oos.close();
Je veux stocker l'objet dans une base de données, j'ai donc besoin de spécifier un ruisseau dans la méthode setBinaryStream()
de la classe PreparedStatement
.
Merci de répondre...
OriginalL'auteur coubeatczech | 2010-05-20
Vous devez vous connecter pour publier un commentaire.
Le stocker dans un tableau d'octets au lieu. Vous pouvez utiliser
ByteArrayOutputStream
pour cela. De cette façon, vous pouvez utiliserPreparedStatement#setBytes()
.Cela dit, c'est plutôt une bonne odeur. Êtes-vous sûr que vous avez besoin de sérialiser des objets Java dans une base de données? De cette façon, ils sont unindexable et insondable. Si vous, par exemple de stocker chaque
Person
sérialisé dans la base de données, vous ne pouvez pas faireSELECT * FROM person WHERE name = 'John'
plus. La pratique normale est de faire un mappage 1:1 de l'entité et de la table DB. LeDate
, par exemple, peut parfaitement être stockés dans unDATETIME
/TIMESTAMP
colonne.Ok, supposons que vous savez ce que vous faites 🙂 Vous êtes les bienvenus.
OriginalL'auteur BalusC
Alors maintenant, vous avez un tableau d'octets et de faire ce que vous voulez avec elle.
OriginalL'auteur Petar Minchev
vous avez spécifiquement besoin d'utiliser un outputstream à écrire dans une base de données? Je voudrais sérieusement envisager de chercher à la persistance de l'api avant de tenter d'écrire un outputstream mise en œuvre.. depuis les détails de la connexion, etc, peut devenir difficile à gérer.
ont un coup d'oeil à texte du lien et n'oubliez pas qu'il peut être utilisé dans J2SE.
OriginalL'auteur Nico