CachedRowSet与ResultSet(100分)

  • 主题发起人 主题发起人 yuqinghe
  • 开始时间 开始时间
Y

yuqinghe

Unregistered / Unconfirmed
GUEST, unregistred user!
我最近写了个程序,是用JAVA在WEBLOGIC下开发,其中要查询出100条记录,
我是这样做的:
定义
CachedRowSet crs=new CachedRowSet();
ResultSet rs=null;
我是先查询出来放在rs中,然后用crs.populate(rs)转换。
现在问题是100条记录执行crs.populate(rs)这句话很慢,要1分钟左右,不知道怎么回事。
这100条记录中有11个字段。
不知道谁能告诉我是什么原因,怎么解决啊。
 
>我是先查询出来放在rs中,然后用crs.populate(rs)转换。
我不明白为什么要这样做?
 
我想在循环中取查询结果的值,在rs中取不出来,所以才进行转换的,
不知道kehua有什么好办法吗?
 
不会吧,你看看下面的帖子是不是你需要的。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1357794
 
cachedRowSet很好用呀,她有三种调用方式,我比较喜欢下面一种,不过你要先从WebLogic的连接池中取的一个连接,然后就可以短开连接了!
例如:
CachedRowSet cachedRs = new CachedRowSet();//生成实力
cachedRs.setCommand("select * from tablename");//设置Sql语句
cachedRs.execute(con);
con.close();//释放Connection连接
while(cachedRs.next()){
//你的执行语句
}
你再测试一下速度如何,好了的话,就要给分呀!!:)
 
to yuppc
还是不行啊,我刚试过,速度一样的。我执行的是这样的SQL:
SELECT USR_ID,PROD_CODE,CUST_NAME,
IMP_NEW.FUNC_GET_USER_SET_NAME(AREA_ID,PROD_ID,USR_ID) USER_SET_NAME,
IMP_NEW.FUNC_GET_VIP_NAME(AREA_ID,PROD_ID,VIP_ID) VIP_NAME,
DECODE(USER_DEGREE,0,'???',1,'??',2,'???',3,'???','???') USER_DEGREE,
TO_CHAR(ADD_MONTHS(TO_DATE(IMP_NEW.FUNC_GET_USER_DEGREE_DATE(AREA_ID,PROD_ID,BILL_CYCL,USR_ID),'YYYYMM'),12),'YYYYMM') USER_DEGREE_DATE,
IMP_NEW.FUNC_GET_USER_FEE(AREA_ID,PROD_ID,BILL_CYCL,USR_ID) NOW_FEE,
IMP_NEW.FUNC_GET_USER_FEE(AREA_ID,PROD_ID,IMP_NEW.FUNC_GET_BILL_CYCL(BILL_CYCL,-1),USR_ID) UP_FEE,
TRUNC((IMP_NEW.FUNC_GET_USER_FEE(AREA_ID,PROD_ID,BILL_CYCL,USR_ID) -IMP_NEW.FUNC_GET_USER_FEE(AREA_ID,PROD_ID,IMP_NEW.FUNC_GET_BILL_CYCL(BILL_CYCL,-1),USR_ID))/(IMP_NEW.FUNC_GET_USER_FEE(AREA_ID,PROD_ID,IMP_NEW.FUNC_GET_BILL_CYCL(BILL_CYCL,-1),USR_ID)+1),2) FEEBL,
FLOOR(MONTHS_BETWEEN(SYSDATE,TO_DATE(IMP_NEW.FUNC_GET_USER_DEGREE_DATE(AREA_ID,PROD_ID,BILL_CYCL,USR_ID),'YYYYMM'))) USER_DEGREE_MONTHS
FROM IMP_NEW.USER_FEE_INFO
WHERE BILL_CYCL='200210' AND USER_TYPE=0 AND PROD_ID='G'
它在sqlnavigator中执行是2秒左右,java中用了上面的方法都要1分种左右。
 
请问一下,WEBLOGIC能不能支持HTC呀?
我试了是不行,只是不知道是不是要通过什么特别的设置
 
后退
顶部