2016-04-29 33 views
0

MYSQLデータベースにBLOBとしていくつかの画像をアップロードしました。次に、残りのWebサービスから取得したい画像を取得したいです。同じtime.Whatの画像は私のデータベースは、それだけでこのJavaを使用してMYSQLデータベースから複数の画像を取得

Snapshot of Database

のように任意のヘルプを事前にappreciated.Thanksだろう?このための最善の解決策である可能性があります。

マイDAOクラスメソッドが

public Response downloadById(int employeeId) { 
    ResponseBuilder response=null; 
    @SuppressWarnings("unchecked") 
    ArrayList<UserProfile> userProfile=(ArrayList<UserProfile>)getHibernateTemplate().find("from UserProfile where employeeId=?",employeeId); 
    for(UserProfile user:userProfile){ 
     byte[] image = user.getProfilePic(); 
     try{ 
      //String tomcatDir = System.getProperty("catalina.home"); 
     FileOutputStream fos = new FileOutputStream("D:/img/"+employeeId+".png"); 
      File file=new File("D:/img/"+employeeId+".png"); 
      response = Response.ok((Object) file); 
      response.header("Content-Disposition","attachment; filename=\"javatpoint_image.png\""); 
      fos.write(image); 
      fos.close(); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 

    } 

    return response.build(); 
} 

マイBeanクラスであることは、私はフォルダ内の画像を入れていますし、そこから私はそれをアクセスしてるのです

public class UserProfile { 

    private int employeeId; 
    private String role; 
    private byte[] profilePic; 
public int getEmployeeId() { 
    return employeeId; 
} 
public void setEmployeeId(int employeeId) { 
    this.employeeId = employeeId; 
} 
public String getRole() { 
    return role; 
} 
public void setRole(String role) { 
    this.role = role; 
} 
public byte[] getProfilePic() { 
    return profilePic; 
} 
public void setProfilePic(byte[] profilePic) { 
    this.profilePic = profilePic; 
} 

}

です。

+0

現在のコード –

+0

'SELECT'を表示してください。ループ。読む。 –

+0

私はこのために休止状態と春を使用しています.ArrayListにオブジェクトを格納しているので、複数のイメージを格納するために使用できます。 –

答えて

0

通常、すべての画像をリストしたHTMLブロックを取得する要求を最初に行います<img src=FURTHER-REQUEST?id=... ...>。その結果、多くのフォローアップ要求が発生し、おそらくは特定のIDに対するSELECTという二重の作業が行われます。

これを最適化する手法はありますが、通常はそれほど努力する価値はありません。たとえば、すべての小さな画像を組み合わせた1つの大きな画像と、CSSを使用してすべてのユーザーの個別のブロックを表示することができます。

+0

お手数をおかけしていただきありがとうございます。私はバックエンドからできますか?私のコードの意味私は1つのイメージのための応答を送っています。複数のイメージのために送ることができますか? –

+0

HTMLの部分を返信するだけです。例えば、 'sの'

'と、個々のIDを持つURLを返します。次に、img要求はidを持つSELECTで個別に処理され、単一のイメージが返されます。 –

関連する問題