CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

如何用JAVA把数据批量从oracle中取出,再批量地插入到mysql中

楼主lshoo(廖师虎)2004-08-04 12:38:46 在 Java / J2EE / EJB / JMS 提问

1.如何批量地从oracle中取出数据,因为数据量大,所以要分批,在mysql中有limit参数,如:select   *   from   table_name   limit   n,   m就是从第n条记录取m条记录。但在oracle中不知道如何写SQL语句,求教中!  
  2.在JAVA中批量更新数据要如何操作,用PreparedStatement还是Statement?具体如何写? 问题点数:0、回复次数:12Top

1 楼andunkafei(安顿咖啡)回复于 2004-08-04 12:53:02 得分 0

1、数据量大不要紧。  
  先用PL/SQL   Developer将数据导出成csv格式,然后在excel中生成insert语句,最后在mysql中执行这个脚本就可以了,跟数据量没关系。  
  2、在JAVA中批量更新数据要如何操作,用PreparedStatement。Top

2 楼noscar(java+Linux)回复于 2004-08-04 13:44:33 得分 0

要用   PreparedStatement   ,有一个   绑定方法,(我记不得了),你去查一查     API   吧....  
  Top

3 楼lshoo(廖师虎)回复于 2004-08-04 15:38:27 得分 0

查API还是不得要领啊,请指教啊!!!!!!!!Top

4 楼lshoo(廖师虎)回复于 2004-08-04 20:40:40 得分 0

要用JAVA写成程序,每天自动运行来更新数据,请指点啊!!!Top

5 楼power_zh(专门在技术区灌水赚分)回复于 2004-08-04 22:02:38 得分 0

upTop

6 楼lshoo(廖师虎)回复于 2004-08-06 17:13:18 得分 0

我现在暂时写成一条条更新,继续等待中。。。。Top

7 楼lakesea(飘渺海)回复于 2004-08-06 17:30:14 得分 0

其实用一个sql就够了。  
  把oracle中的数据取出来,然后生成一个如下格式的sql,再执行,这样可能效率要高些吧。  
  INSERT   INTO   `brand_m`   (`BRAND_ID`,   `BRAND_INFO`)   VALUES    
      (1,'禁止合闸,线路有人工作'),  
      (2,'禁止合闸,有人工作'),  
      (3,'在此工作'),  
      (4,'止步,高压危险'),  
      (5,'从此上下'),  
      (6,'禁止攀登,高压危险');  
   
  Top

8 楼lshoo(廖师虎)回复于 2004-08-06 23:59:48 得分 0

我就是这样的,只是一次更新一条记录而已,现在想一次批量更新100或更多,这样的效率会更高!Top

9 楼tyrone98(林林)回复于 2004-08-07 07:16:03 得分 0

建立oracle的连接后与mysql连接后,使用setDefaultRowPrefetch()   与   setDefaultBatchValue()。  
  对oracle的ResultSet使用setFetchSize()使每一次多读取记录。  
  使用getString(1)用数字来读取字段值。  
   
  对mysql的connection设置    
    con.setAutoCommit(false);手工进行commit   ;    
   
  使用PreparedStatement来进行更新操作.  
  PreparedStatement   stmt   =   con.preparedStatement(   "insert   into   TAB   values(   ?   )   "   )   ;  
  stmt.setString(   0   ,   需更新的值   )   ;  
  stmt.addBatch()   ;//批更新提高效率  
  然后自已来确定多少条提交一次。一般定成500-2000条,超过2000条后对性能的改变并不大,越大数据库需要更多的回滚区。  
   
  Top

10 楼yufeiyxl(与飞)回复于 2004-08-07 08:28:38 得分 0

我认为批量更新容易实现,问题是不同数据库直接的连接我不懂Top

11 楼blasterboy(自由给与我力量。支持O'Reilly)回复于 2004-08-07 08:51:58 得分 0

rownumTop

12 楼lshoo(廖师虎)回复于 2004-08-09 11:15:21 得分 0

tyrone98(林林),在API里找不到setDefaultRowPrefetch()   与   setDefaultBatchValue(),commit写在哪里?可不可以再说得详细点?哪里有相关的资料下载?我的QQ:56430587,msn:lshoo@hotmail.com。  
  Top

相关问题

  • java如何向oracle中RAW类型字段插入数据?
  • Oracle嵌套表(Nested)的插入问题 请教java及oracle的高手
  • Oracle嵌套表(Nested)的插入问题 请教java及oracle的高手
  • ORACLE中怎么插入唯一记录, mysql是这样做到的 insert ignore
  • java向mysql中插入中文出现乱码的问题
  • oracle插入数据问题
  • 求一oracle插入语句?
  • 从oracle中读数据插入到MYSQL里,用的是phplib,出现了类名称相同如何解决?
  • 关于Mysql查询插入
  • php,mysql插入中文

关键词

  • 数据
  • oracle
  • 连接
  • mysql
  • sql
  • 更新
  • 取出
  • preparedstatement
  • 记录
  • 禁止

得分解答快速导航

  • 帖主:lshoo

相关链接

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

广告也精彩

反馈

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