jsp页面中如何将数据库中的blob字段转为String显示在页面上(java)

<%
String credit_sql1 = " SELECT * FROM view_jjjxx_article v WHERE v.title like '什么是企业征信?' " ;
List credit_list1 =simpleJdbcTemplate.queryForList(credit_sql1);
if(credit_list1 !=null && credit_list1.size()>0){
ListOrderedMap map1=(ListOrderedMap)credit_list1.get(0);
%>
<%=map1.get("text_content") %>
<%
}
%>
注:text_content在数据库中为blob类型,数据库为oracle

jsp先从数据库获取blob字段的值,然后通过流的方式读取,转换成string才可以展示的。
参考代码如下:
从数据库中读取Blob类型数据后,要转换成String类型,即转换成InputStream,再从InputStream转成byte[],再到String即可。如下:
//把数据库中blob类型转换成String类型
public String convertBlobToString(Blob blob){

String result = "";
try {
ByteArrayInputStream msgContent =(ByteArrayInputStream) blob.getBinaryStream();
byte[] byte_data = new byte[msgContent.available()];
msgContent.read(byte_data, 0,byte_data.length);
result = new String(byte_data);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-07
java.sql.Blob blob = rs.getBlob("FJNR");
        if (blob != null){
         InputStream inStream = blob.getBinaryStream();
         ByteArrayOutputStream bot = new ByteArrayOutputStream(); 
         byte[] b = new byte[1024];  
         int len = 0;
         while ((len = inStream.read(b)) != -1) {  
            bot.write(b, 0, len);  
         }
         content = bot.toByteArray();
         bot.close();
         inStream.close();
        }

你可以参考一下

本回答被网友采纳
相似回答