繁体   English   中英

如何在JDBCTemplate spring 4中打开数据库连接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM