2016-04-29 4 views
0

Я загрузил несколько изображений в базе данных MYSQL в виде BLOB. Теперь я хочу получить его через веб-службы отдыха и java. Я могу получить одно изображение. Но как я могу получить несколько изображения на одном и том же time.What может быть лучшим решением для этого? Моя база данных это просто как этотИзвлечь несколько изображений из базы данных MYSQL с помощью java

Snapshot of Database

Любая помощь будет заранее было оценено.

Мой метод класса 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; 
} 

}

Я помещаю изображение в папке и оттуда я acessing его.

+0

Пожалуйста, подтвердите свой код –

+0

'SELECT'. Loop. Читать. –

+0

Я использую hibernate и spring для этого. Поскольку мы храним объекты в ArrayList. Что можно использовать для хранения нескольких изображений. –

ответ

0

Обычно вы делаете первый запрос на извлечение блока HTML со всеми изображениями <img src=FURTHER-REQUEST?id=... ...>. Это приводит к многочисленным последующим запросам, что, вероятно, приводит к двойной работе, SELECT для конкретного идентификатора.

Есть методы для оптимизации этого, но они не стоят усилий обычно. Например, вы можете вернуть одно большое изображение, объединяющее все маленькие изображения, и через CSS отображать отдельные блоки для каждого пользователя.

+0

Спасибо вам за помощь sir.Can Я делаю это с бэкэнд ????? Средства в моем коде. Я отправляю ответ только для одного изображения. Могу ли я отправить его для нескольких изображений ???? –

+0

Вы просто отправляете фрагмент HTML, скажем '

' с '', с URL-адресом с отдельным идентификатором. Затем запрос img обрабатывается отдельно с помощью SELECT с идентификатором и возвращает одно изображение. –

Смежные вопросы