在Java中何时清除连接对象?
我需要用java处理400万条记录。需要从AS400复制到Oracle。我正在做的是一批一批地提交记录。批量大小由用户定义。让我们假设它是100 我正在创建一个连接对象,创建一批100条记录并提交它。一旦我完成Committeing 2000,我将通过关闭现有的连接对象来创建一个新的连接对象 因此,现在我有以下疑问 1.一旦我提交批次,我提交的100条记录的数据将在内存中?连接对象?因为我没有关上它在Java中何时清除连接对象?,java,servlets,jakarta-ee,jboss,Java,Servlets,Jakarta Ee,Jboss,我需要用java处理400万条记录。需要从AS400复制到Oracle。我正在做的是一批一批地提交记录。批量大小由用户定义。让我们假设它是100 我正在创建一个连接对象,创建一批100条记录并提交它。一旦我完成Committeing 2000,我将通过关闭现有的连接对象来创建一个新的连接对象 因此,现在我有以下疑问 1.一旦我提交批次,我提交的100条记录的数据将在内存中?连接对象?因为我没有关上它 如果在提交100条记录后创建一个新的连接对象会怎么样。所以在本例中,我将创建连接对象,如100多
创建JDBC连接在大多数情况下都很昂贵。因此提出了数据源概念,通常使用连接池来保持连接以供重用 以下是一些关于这方面的想法: 该连接不包含属于您执行的语句的查询的任何数据。因此,基本上创建和释放连接不会影响内存。但你的表现是正确的,这是相关的 这些语句也是可关闭的,因此它们也会在此之后释放资源 1)是的,一旦提交记录,它们就属于内存。始终在关闭任何连接对象之前提交
2) 也许吧。您应该记录您的过程,以便测量打开/关闭连接所需的时间。一般来说,这个过程很耗时,但在您的情况下,开盘结束的额外时间可能不会对您的绩效产生重大影响。您应该首先测量并确定最佳解决方案。我不知道有什么好的理由关闭仍然需要的连接。事实上,这些连接通常是在独立请求之间汇集和保持的。