- PR -

インターフェースのシリアライズについて

投稿者投稿内容
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2004-07-27 11:04
(1) ByteArrayOutputStream(以下,baos)を構築する。
(2) baosをラップさせたObjectOutputStream(以下,oos)を構築する。
(3) oos.writeObject()を呼び出し,シリアライズしたいオブジェクトをbaosへ書き込む。
(4) baos.toByteArray()を呼び出し,byte列を取得する。
(5) (4)で取得したbyte列をBLOBの出力ストリームへ書き込む。
でいかがでしょうか。

BLOBへのbyte列の書き込みや,BLOBデータをDBに登録する手順は,OTN Japanより配布されているドキュメント("JDBC開発者ガイド"だと思いました...)に詳しく載っています。
また,Oracle8i版のドライバとなると,Oracle JDBC Driver依存のAPIを直接呼び出す必要があるはずです。

_________________
Kan Ogawa
k-ogawa@users.sourceforge.jp
ラッキーボーイ
会議室デビュー日: 2004/07/23
投稿数: 7
お住まい・勤務地: 水辺
投稿日時: 2004-07-27 21:27
みなさん、アドバイスありがとうございます。

何とか自力でimageIconをシリアライズし受け渡しすることができました。
しかし、BLOBに格納するところで詰まってしまいました・・・
BLOBに格納するところのアドバイスをお願いできないでしょうか?
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-07-27 22:32
引用:

ラッキーボーイさんの書き込み (2004-07-27 21:27) より:
何とか自力でimageIconをシリアライズし受け渡しすることができました。
しかし、BLOBに格納するところで詰まってしまいました・・・
BLOBに格納するところのアドバイスをお願いできないでしょうか?


ただ「詰まってしまった」ではアドバイスが難しいので、何ができて何ができていないのかを
明確にしてください。
未記入
大ベテラン
会議室デビュー日: 2003/11/24
投稿数: 121
投稿日時: 2004-07-28 07:26
格納したイメージデータは最終的にどのように利用するんでしょうか?
その利用方法によっても、採るべき方法が変わってくると思います。

もしも、格納したデータを Java でしか扱わず、またその取り扱い(表示方法)も
ImageIcon に限定されているのであれば、ImageIcon をシリアライズしたものを
そのままデータベースに格納してしまえば良いと思います。
この方法は、再利用方法が限定されるので、オススメできません。

より一般的なのは、画像形式(png/jpeg/gif)のままデータベースに登録することでしょう。
この方法を採るのであれば、ImageIcon にしてシリアライズしたこと自体が失敗と言えます。
おそらく、png/jpeg/gif などの画像データを ImageIcon に変換したのだと思いますが、
ImageIcon に変換せずに元画像データを byte[] にして、そのまま扱った方が良いです。

スキルアップ/キャリアアップ(JOB@IT)