java读取Clob字段:
最近频繁处理clob字段,故集中了几种读取clob字段的方法,供大家参考。
第一种:
Clob clob = rs.getClob("remark");//java.sql.Clob
String detailinfo = "";
if(clob != null){
detailinfo = clob.getSubString((long)1,(int)clob.length());
}
这一种使用jdbc链接oracle数据库形式进行获取clob字段。采用ResultSet方式就行读取数据。
第二种:
Clob clob = rs.getClob("remark");//java.sql.Clob
int i = 0;
if(clob != null){
InputStream input = clob.getAsciiStream();
int len = (int)clob.length();
byte by[] = new byte[len];
while(-1 != (i = input.read(by, 0, by.length))){
input.read(by, 0, i);
}
detailinfo = new String(by, "utf-8");
}
第三种:
Clob clob = rs.getClob("remark");//java.sql.Clob
Clob clob = (Clob) pd.get("WKT");
Reader read= clob.getCharacterStream();
BufferedReader br = new BufferedReader(read);
String s = br.readLine();
StringBuffer sb = new StringBuffer();
while (s != null) {
sb.append(s);
s = br.readLine();
}
ret = sb.toString();
if(br != null){
br.close();
}
if(read != null){
read.close();
}
loger.info("wkt=="+ret);
mv.addObject("wkt",ret);
第一种方法代码量少,且能避免中文乱码问题;第二种方法与第一种方法效率差不多,也是常使用的一种方法;第三种方法效率极低,如果数据比较大的话建议不要使用。