[英]How can i make database connection open in JDBCTemplate spring 4
我在spring4中使用JDBCTemplate来执行返回Blob对象的select查询。 现在我尝试使用以下代码将Blob对象转换为字符串
Blob image;
ImageScanningBean imageScanningBean = new ImageScanningBean();
image = rs.getBlob("IMAGEOUT");
StringBuffer strOut = new StringBuffer();
try
{
String aux;
BufferedReader br = new BufferedReader(new InputStreamReader(image.getBinaryStream()));
while ((aux=br.readLine())!=null)
{
strOut.append(aux);
}
strOut.toString();
imageScanningBean.setImageOutBase64(strOut.toString());
}
catch(Exception e){
e.printStackTrace();
}
但是我在连接关闭的后续行中收到错误
BufferedReader br = new BufferedReader(new InputStreamReader(image.getBinaryStream()));
如何在JDBCTemplate中打开数据库连接
在我使用queryForObject()之前,它在操作完成时自动关闭连接bean = jdbcTemplate.queryForObject(“select * from tablename”,new Object [] {tokenId,tellerId},new BeanPropertyRowMapper(TokenDetailsBean.class));
所以为了保持连接活着,我刚刚添加了mapRow()
try
{
imageScanningBean = jdbcTemplate.queryForObject("select * from tablename", new Object[]{imageScanningBean.getTellerId()},new BeanPropertyRowMapper<ImageScanningBean>(){
public ImageScanningBean mapRow(ResultSet rs, int rowNum) throws SQLException {
Blob image;
ImageScanningBean imageScanningBean = new ImageScanningBean();
image = rs.getBlob("IMAGEOUT");
StringBuffer strOut = new StringBuffer();
try
{
String aux;
BufferedReader br = new BufferedReader(new InputStreamReader(image.getBinaryStream()));
while ((aux=br.readLine())!=null)
{
strOut.append(aux);
}
strOut.toString();
imageScanningBean.setImageOutBase64(strOut.toString());
}
catch(Exception e)
{
e.printStackTrace();
}
return imageScanningBean;
}
});
}
catch(EmptyResultDataAccessException er)
{
er.printStackTrace();
return imageScanningBean;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.