今天遇到一個(gè)難題症昏,Oracle數(shù)據(jù)庫中有一個(gè)字段是CLOB類型,java簡單解析不了父丰。去查找了一下解決方案肝谭,試了好幾種攘烛,下面的這種是有效的镀首。
public String ClobToString(Clob clob) throws SQLException, IOException {
String reString = "";
Reader is = clob.getCharacterStream();// 得到流
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
StringBuffer sb = new StringBuffer();
while (s != null) {// 執(zhí)行循環(huán)將字符串全部取出付值給StringBuffer由StringBuffer轉(zhuǎn)成STRING
sb.append(s);
s = br.readLine();
}
reString = sb.toString();
return reString;
}
}
此處的Clob是java.sql.Clob字段芋齿。
但是我們從數(shù)據(jù)庫中取出的時(shí)候是CLOB字段成翩。所以我們需要強(qiáng)制轉(zhuǎn)換一下,在調(diào)用該方法的時(shí)候:
String competitive = ClobToString((Clob)map.get("COMPETITIVEBRAND"));