springMVC下mediumblob字段的图片在dao层的处理代码案例
时间: 2023-12-28 15:03:34 浏览: 79
在MVC 下处理 mediumblob 类型字段的图片需要以下几个步骤:
1. 定义一个 POJO 类,用于存储 mediumblob 类型的图片数据,例如:
```java
public class Image {
private int id;
private byte[] data;
// 省略 getter 和 setter
}
```
2. 在 DAO 层中定义方法,用于从数据库中获取 mediumblob 类型的图片数据,例如:
```java
@Repository
public class ImageDaoImpl implements ImageDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public Image getImageById(int id) {
String sql = "SELECT * FROM image WHERE id=?";
Image image = jdbcTemplate.queryForObject(sql, new Object[]{id}, new RowMapper<Image>() {
@Override
public Image mapRow(ResultSet resultSet, int i) throws SQLException {
Image image = new Image();
image.setId(resultSet.getInt("id"));
image.setData(resultSet.getBytes("data"));
return image;
}
});
return image;
}
}
```
3. 在 Service 层中调用 DAO 层的方法,将返回的 mediumblob 类型的图片数据转换成 Java 中的 BufferedImage 类型,例如:
```java
@Service
public class ImageServiceImpl implements ImageService {
@Autowired
private ImageDao imageDao;
@Override
public BufferedImage getImageById(int id) throws IOException {
Image image = imageDao.getImageById(id);
ByteArrayInputStream bis = new ByteArrayInputStream(image.getData());
BufferedImage bufferedImage = ImageIO.read(bis);
return bufferedImage;
}
}
```
4. 在 Controller 层中调用 Service 层的方法,将 BufferedImage 类型的图片数据返回给前端页面,例如:
```java
@Controller
public class ImageController {
@Autowired
private ImageService imageService;
@RequestMapping(value = "/image/{id}", method = RequestMethod.GET)
public void getImageById(@PathVariable int id, HttpServletResponse response) throws IOException {
BufferedImage bufferedImage = imageService.getImageById(id);
response.setContentType("image/png");
OutputStream os = response.getOutputStream();
ImageIO.write(bufferedImage, "png", os);
os.close();
}
}
```
这样就可以实现在 SpringMVC 下处理 mediumblob 类型字段的图片了。
阅读全文