有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我在spring4中使用JDBCTemplate执行select查询,该查询返回一个Blob对象。现在,我尝试使用以下代码将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中打开数据库连接


共 (1) 个答案

  1. # 1 楼答案

    在我使用queryForObject()之前,它会在操作完成时自动关闭连接 bean=jdbcTemplate。queryForObject(“select*from tablename”、新对象[]{tokenId,tellerId}、新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;
        }