CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

JAVA在讀數據庫的時候,可否轉到指定的某一行?

楼主fenglibing(流星)2006-05-02 10:56:41 在 Java / J2SE / 基础类 提问

由于ORACLE數據庫中有最大打開連接限制,比如插入操作一次性只能夠插入300條等,如果在當前連接再插入記錄就會報錯,可以采用重新連接的方式去插入。但是這里記錄太多,如果每到一個數就要去重新連接,然后還要去確定當前記錄是否已經存在于數據表中,這是一個很大的資源浪費。  
  我的想法是:  
          如果我在源表中已經讀到了300條記錄(讀記錄是不會出錯,但是目標寫入表要報最大連接限制錯誤,因而重新連接CONN都要重新連接),下次我從301條讀取,這樣我就省去了在目標表中去判定當前記錄是否已經存在,達到一個比較好的效率。  
  但是我看了一下,好像不可以直接轉到某一行,不知道那位朋友有解決的方案,小弟受教了。 问题点数:30、回复次数:5Top

1 楼mingr6370(丑男)回复于 2006-05-02 11:49:20 得分 0

PreparedStatement 插入4000条没问题,当然要设置数据库  
   
  你说的情况,就要取得当前最后一条数据?ResultSet.last() 试试吧Top

2 楼fenglibing(流星)回复于 2006-05-02 15:41:11 得分 0

數據庫我沒有設置的權限,所以我只能夠在自己的程序中去適應它。  
  不是到最后一條記錄,假如源表有10000條記錄,現在我讀了三百條,插入到目標表中,可是由于上面的原因,需要重新連接。我希望下次連接的時間,我可以指定我的源表指針一下就到301條記錄,我就不用到目標表中去判斷該記錄是是否已經存。  
  否則,我還得從源表的第一條記錄去讀,然后去目標表中比較,你可以想一下,如果我有有萬條記錄,且每次只能插入300條,可以算得出要比較的次數該是一個很多的數字。  
  所以,這里的浪費我想去掉,再待指教。Top

3 楼fenglibing(流星)回复于 2006-05-02 15:42:07 得分 0

當然這里不是一個簡單的表拷帳戶操作,這里要進行復雜的比較及運算Top

4 楼YidingHe(机枪兵)回复于 2006-05-02 15:53:55 得分 0

在查询语句后面加上(where...)“   and   rownum>XXX”(仅限Oracle)  
  但是在翻页过程中如果数据行有增删改而影响了顺序,那就不正确了。Top

5 楼fenglibing(流星)回复于 2006-05-02 16:04:41 得分 0

方法不行,兄弟,我分別采用下面兩種方式都不行:  
  select   *   from   card_rec_meteor   where   rownum>1;及  
  select   *   from   card_rec_meteor   where   to_char(cr_cdate,'yyyy/mm/dd')='2006/04/28'   and   rownum>1;  
  都沒有記錄  
  里面是有記錄的。  
   
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:fenglibing

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo