Problemet var att bilden vägrade visa sig på sidan. Lösningen var att importera rätt paket och att mappa rätt url i din jsp sida.
Istället för java.jdbc.sql.Blob; skulle det vara java.sql.Blob;
Hela lösningen;
1. Spara ner bilden med datatypen Blob i din domänklass :
@Column(name = "image")
@Lob
private Blob image;
2. Hämta den blob objektet genom att hämta hela objektet som den ligger i mitt fall i en Person :
@Override
public Person getPerson(int personId) {
return (Person)session.getCurrentSession().get(Person.class, personId);
}
3. Hämta den via en service och lägg upp den i din Controller.
@RequestMapping(value = "/image/{id}", method = RequestMethod.GET)
public String viewImages(@PathVariable int id, HttpServletResponse response) throws SQLException {
Person person = service.getPerson(id);
Blob blob = person.getImage();
try {
OutputStream out = response.getOutputStream();
response.setContentType("image/JPEG");
IOUtils.copy(person.getImage().getBinaryStream(), out);
log.trace(person.getImage().getBytes(1, (int) blob.length()));
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
Obs bilder måste ha en egen kontroller eftersom din jsp behöver en <img src="url">.
4. Lägg till den i din .jsp
<td><img src= "<%= request.getContextPath() %>/image/${person.id}.html"/></td>
Slutresultatet :