oracle Clob字段的读取效率问题

zhangxf 2003-10-23 02:28:38
我想取出CLOB字段的内容采用自定义类中的方法(如下):
public String getContent(String id,String flag){//仅仅取内容
try
{
oracle.sql.CLOB clob=null;
flag="";
String ct="";
String str_SQL = new String("select content from kfq.infoCollect where autoid = '"+id+"' order by inDate desc");
ResultSet rsContent_true = super.executeQuery(str_SQL);
if(rsContent_true.next()){
clob = (oracle.sql.CLOB)rsContent_true.getClob(1);
if(clob!=null){
Reader is=clob.getCharacterStream();
BufferedReader br=new BufferedReader(is);
String s = br.readLine();
while(s!=null){
ct+=s;
s = br.readLine();
}
}
rsContent_true.close();
}
return ct;
}
catch(Exception ex){
System.err.println(" InfoCollect..getCollect():" + ex.getMessage());
return null;
}
}

当有上万字符的时候读取速度异常的慢,各位高手帮忙看看有什么更好的办法,谢谢,欢迎讨论
...全文
791 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaray 2003-10-23
  • 打赏
  • 举报
回复
楼主,该结帖了
zhangxf 2003-10-23
  • 打赏
  • 举报
回复
呵呵,问题如果是仅仅将文字填写到<td></td>中我当然完全可以把一张比如是test.jsp的文件嵌进去做了(前面的一个系统就是这么做的),但是我现在还要和图片混排(环绕的效果的!!!),图片同样是数据库中取来的。(当然不能怪你说我死,是我没有写清楚)

最后:这个方法非常有效,
String s = "";;
while(s=br.readLine() !=null){
ct.append(s);
}
谢谢各位!!!



flyycyu 2003-10-23
  • 打赏
  • 举报
回复
那你就是太死了!
如果大的话!
你可以在td中加入iframe
由该iframe到服务器去去取!
而服务器响应的是一个servlet!
(在jsp只有out对象!)
zhangxf 2003-10-23
  • 打赏
  • 举报
回复
to: flyycyu(fly)
我也准备用流了啊,但是流只能用jsp页面来接收啊我要把它写到<td></td>中间去啊,怎么来接受这个Stream呢?谢谢
String str_SQL = new String("select content from kfq.infoCollect where autoid = '"+id+"' order by inDate desc");
ResultSet rsContent_true = super.executeQuery(str_SQL);
if(rsContent_true.next()){
clob = (oracle.sql.CLOB)rsContent_true.getClob(1);
if(clob!=null){
in = new BufferedInputStream(clob.getAsciiStream());
}
return in;
}
提点意见,我不知道除了用页面来接收还有什么其他更好的办法,把这个流写到<td></td>中去
yaray 2003-10-23
  • 打赏
  • 举报
回复
String s = "";;
while(s=br.readLine() !=null){
ct.append(s);
}
yaray 2003-10-23
  • 打赏
  • 举报
回复
//String ct=""; // <<===换成StringBuffer类吧

StringBuffer ct = new StringBuffer();

...
while(s!=null) {
ct.append(str);
..
}
....

return ct.toString();
...
flyycyu 2003-10-23
  • 打赏
  • 举报
回复
如果你是服务器端!没有必要先读到string中!
而是直接用流写到客户端!

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧