java访问oracle数据库连接问题

问题描述

现在有个需求,要求表中所有的记录写入文件。(定时写,每天写2次)表中的记录行是500W左右(假设)现在有两种方式。1.连接oracle后,查询返回resultSet,遍历resultSet同时写入文件,读一行写一行。2.连接oracle后,分页查询数据到list,在吧这个list写入文件两种方式都各有好处:1,整个操作速度快,不用吧返回的数据再封装成list,而且也只需查询一次,问题是在整个过程中connnection都是没有释放的,直到数据写完。2,速度慢,500W数据,分页1000行一次,每次查询都要花费1-3S,越往后翻页越慢,查询出来的数据还要封装到list中。优势是每次查询都是短连接,查询一次connection断开,下次循环再连接。这里不直到有没有更好的方法,或者是说其中哪种方法更好。我这里担心长连接是否会有问题。 问题补充:kidding87 写道

解决方案

其实两个差不多,对于oracle来说要比mysql强的多它有个fetchsize表示一次性抓取的行数到内存中当你rs滚动的时候,它也随之抓取数据,分页不分页的没什么影响你说的数据查询一次要3S这个时间上有点长了connection不释放就不释放了,又不会咋样的,连接池还不一样不释放
解决方案二:
肯定不会了,oralce这么贵的东西,是那么脆弱的么。。。楼下提供了一个不错的方法,生产消费模式开启两个线程,一个读数据,一个写数据
解决方案三:
第一种方式用两个线程,第一个线程查询返回resultSet,遍历resultSet先加到一个10000条的数组;数组满了以后,再用另一个线程把数据写入文件,这时第一个线程使用一个新的空数组缓存数据。就是生产者-消费者模式。

时间: 2024-10-24 05:22:42

java访问oracle数据库连接问题的相关文章

java连接Oracle数据库的方法解析_java

Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id number(11) not null primary key, stu_name varchar(16) not null, gender number(11) default null, age number(11) default null, address varchar(128) default null ); 2.向表中增添一些数据

oracle11g-java和Oracle数据库连接

问题描述 java和Oracle数据库连接 要求用Java和Oracle做实训,现在用Java把界面写好了,数据库该弄得也弄好了,请问怎么把二者连起来,作为一个完整作品 解决方案 写一个数据库管理类(例如:DBManger),然后可以用反射机制获取jdbc驱动(注意:一下使用10g为例) //静态代码块,只执行一次 static{ try { Class.forName(""oracle.jdbc.driver.OracleDriver""); } catch (C

java通过JDBC访问Oracle的2个异常

oracle|访问 1.  连接非常慢, 连接成功后执行select操作出现异常:    Exception in thread "main" java.sql.SQLException: ORA-00600: 内部错误代码,参数: [ttcgcshnd-1], [0], [], [], [], [], [], []     解决: 使用oracle安装目录下的jdbc\lib\classes12.jar后正常. 2. 使用PreparedStatement的setString(i,

JAVA频繁访问oracle数据库获取记录(间隔1秒就读取数据库记录或修改数据库记录),如何操作

问题描述 JAVA频繁访问oracle数据库获取记录(间隔1秒就读取数据库记录或修改数据库记录),使用什么连接方式最好(高效)??,用jdbc连接池好吗?,怎么使用jdbc连接池后释放资源而不关闭连接呢??,谢谢各位了!!

通过.NET访问 Oracle数据库

oracle|访问|数据|数据库 长期以来,我一直用的是 MS SQL Server / Access 数据库,通过.NET 访问MS自家的东西几乎没碰到过什么麻烦.最近项目中要用 Oracle 作为数据库,学习研究了一些 .NET 访问Oracle 的东西,发现问题倒真的不少. 1.System.Data.OracleClient 和 System.Data.OleDb 命名空间 虽然通过这两个命名空间的类都可以访问 Oracle 数据库,但和 SQL Server 类似的(System.Da

用Java访问SQL Server 2000数据库

摘要:本文主要介绍采用JDBC.ODBC接口实现了与SQL Server2000数据库的连接,并利用Java应用程序对其进行访问,同时通过图形用户界面实现了简单的查询功能. 关键词:Java,SQL Server,数据库 前言 数据库技术和网络技术是当今计算机领域的两大热门话题,数据库技术自产生以来,在技术上已发展成熟.而作为前端访问的开发工具和环境仍处在不断完善和发展之中,除了网络上使用的ASP.PHP.JSP作为前端连接数据库技术外,小型系统上常用访问数据库技术有Delphi.Visual

BS结构中使用PHP访问ORACLE LOB

oracle|访问 摘要:本文介绍了如何利用PHP的数据库访问技术实现对ORACLE LOB数据对象的存储. 关键字:PHP:ORACLE: LOB:存储: 引言 PHP,即"PHP: Hypertext Preprocessor",是一种广泛用于 Open Source(开放源代码)并可以嵌入 HTML 的多用途脚本语言.它的语法接近 C.Java 和 Perl,易于学习.该语言的主要目标是让 Web 开发人员快速的书写动态生成的网页,然而,PHP 的功能并不局限于此.PHP普遍被认

使用ADO.NET访问Oracle 9i存储过程(上)

本文讨论了如何使用 ADO.NET 访问 Oracle 存储过程(称为 SQL 编程块)和函数(返回单个值的编程块). 您可以使用以下托管数据提供程序连接到 Oracle 数据库:Microsoft .NET Oracle 提供程序.OLE DB .NET 提供程序.ODBC .NET 数据提供程序以及 Oracle 的 ODP.NET 提供程序.本文使用用于 Oracle 的 Microsoft?.NET 框架数据提供程序.使用 Oracle ODP.NET 数据提供程序或用于 OLE DB

实例代码讲解Java连接Oracle数据库的各种方法

oracle|数据|数据库 java与oracle的接口: 在数据库中运行JAVA可以说是ORACLE8i的最令人激动的新特性.在你创建的使用ORACLE8i 数据库的应用程序中,你可以使用与JAVA有关的新特征,轻松的将程序发布到INTERNET或INTRANET上. Methods for Using Java in ORACLE 大家都知道JAVA在跨平台开发与INTERNET开发中已经比较流行,ORACLE8i及以后的版本中都包含了对在数据库中运行JAVA的扩展支持,这里有两种方法可以使