clob转化String类型

来源:互联网 发布:创建数据库的语句 编辑:程序博客网 时间:2024/04/19 21:10

Clob转化String

/**通过jdbc查出clob类型字段


public Object[] qyzfxxView(String qymc,String qyid){
Connection c = null;
PreparedStatement pstmt = null;  
        ResultSet rset = null;  
Object[] obj = new Object[14];
Long id =Long.parseLong(qyid);
String sql="select e.qy_mc,e.fddbr,e.dsr_dwdz,e.xzzfjg,e.rdyj,e.xzcfyj,e.xzcfjd,e.cfje,e.zfrqzsj,e.zfr1,e.qy_cffz,e.wscjsj," +
" e.hzgkf,e.wfms  from Process_qyzfxx e where e.qy_mc ='"+qymc+"' and e.id ="+id;
try {
c=SessionFactoryUtils.getDataSource(getSessionFactory()).getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
try {
pstmt=c.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
try {
rset = pstmt.executeQuery();
while (rset.next()) {  
for(int i=0;i<13;i++){
obj[i]=rset.getString(i+1);
}
CLOB clob = (CLOB)rset.getClob(14);
obj[13]=Clob2String(clob);
}  
} catch (SQLException e) {
e.printStackTrace();
}

return obj;
}

/**
 * clob to string
 * 大字符串格式转换STRING
 * @param clob
 * @return 大字符串
 * 
 */
public String Clob2String(CLOB clob) {// Clob转换成String 的方法
 String content = null;
 StringBuffer stringBuf = new StringBuffer();
 try {
  int length = 0;
  if(clob!=null){
  Reader inStream = clob.getCharacterStream(); // 取得大字侧段对象数据输出流
  char[] buffer = new char[50];
  while ((length = inStream.read(buffer)) != -1) // 读取数据库 //每50个10个读取
  { for (int i = 0; i < length; i++) {
  stringBuf.append(buffer[i]);
  }
  }
  inStream.close();
  content = stringBuf.toString();
  return content;
  }else{
  return null;
  }
 } catch (Exception ex) {
 ex.printStackTrace();
 return null;
 }
}