2012-02-20 5 views
1

JFileChooserで選択した画像をphpMyAdminのMySQLのBLOBカラムに保存できますが、そのBLOBを表示してJFrameにロードするにはどうすればいいですか? Javaからの表示のために?任意のコードが役立ちます。MYSQLからのJavaビューの画像パスとその画像をJavaのヒントで表示

+1

何を試しましたか?どのようにあなたはブロブを書くことができますが、それを読むことはできませんか? –

+0

あなたは現在どのようなコードを使用していますか? –

答えて

1

は、データベースからBLOBを取得して画像を描画する方法を参照してくださいhereImageIO.read

を使用してBufferedImageを作成します。

0

これは、BLOB形式でDBに格納されているJLabelオブジェクトの画像を示すコードセグメントです。

Blob sqlphoto = (Blob) rs.getBlob("photo"); 
if (sqlphoto != null) { 
    InputStream photo = sqlphoto.getBinaryStream(); 
    Image image = null; 
    try { 
     image = ImageIO.read(photo); 
     jLabel31.setIcon(new ImageIcon(image)); 
    } 
    catch (IOException ex) { 
     Logger.getLogger(ModifyClerk.class.getName()).log(Level.SEVERE, null, ex); 
    } 

}

+1

IOExceptionが存在する場合、ImageIconはどのようになりますか?最後の行はtryブロックの内側にあります。 –

+0

これはifブロック内にある必要があります。私は私の答えを編集しました: – zari

+0

いいえ。それはtryブロックにあるはずです。それ以外の場合は、ヌルイメージを持つImageIconを作成し、その結果、NullPointerExceptionが発生します。 –

0

あなたの問題を解決しますドミトリにより上記の解決策は、それは確かです。私は初心者のプログラマーでも同じことをするのには使いましたが、データベースにイメージを格納するのは良いアイデアではありません。イメージファイルの場所のパスをデータベースに格納し、イメージをファイルシステムに格納する方が優れています。これにより、多くの処理が省け、パフォーマンスが向上します。より良い理解のために、このすばらしいディスカッションをお読みください。

Store image in database Vs File System.

+0

あなたのアプリに依存します(他のすべてのもののように)。イメージの数とサイズ、およびそれらの使用方法によっては、ファイルシステムまたはデータベースのどちらかの方がパフォーマンスが向上する可能性があります。多くの場合、パフォーマンスの差はごくわずかですが、データを管理する方がより便利です。あなたの特定のアプリケーションに依存します。 – Dmitri

関連する問題