java - 如何用java从数据库读取大量数据并写入文件?

标签 java derby

我有一个至少有 2 GB 数据的 derby 数据库,我必须读取这些数据并写入文本文件。现在,某些列可能是 blob 数据类型。

我目前的方法是一次从一个表中读取数据,批量大小为 10(比方说),并将数据(字符串列表)放入最大大小为 10 的数组阻塞队列中。线程将一一挑选元素并写入文件。

我面临以下问题,

  1. how to fetch 10 rows from a table in a single hit and fetch next 10 rows in second
  hit and so on.
  2. how to convert blob and binary data into string 

最佳答案

您无法明确执行此操作。但您可以设置 fetchSize。此参数向 JDBC 驱动程序提示要从数据库一次性获取多行。但司机可以忽略这一点并做他认为合适的事情。有些驱动程序以 block 的形式获取行,有些驱动程序只是一次性读取整个结果集。

使用获取大小(取决于驱动程序)将缓冲数据,因此在性能方面没有问题,因为它隐式地为您进行分块。所以我们从结果集中获取数据的方式基本上没有区别。

关于java - 如何用java从数据库读取大量数据并写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15288050/

相关文章:

java - 将结果数组从类返回到其他类 java

java - Apache Derby 为我创建的具有有意义名称的索引提供了奇怪的名称

java - 运行 JUnit 测试时出错(JPA、Derby、Hibernate、Guice)

java - 如何配置项目以使用最新的 Derby DB 版本 (10.4)?

java - JAXB HashMap 不可映射

java - 是否有一个库函数可以为我提供变量中的当前日期并查找自给定日期以来经过的天数

java - Java printf 中的 "%n"是怎么回事?

java - Derby:另一个 Derby 实例可能已经启动了数据库

java - 在 Windows 启动时运行 Java 应用程序

java - 为什么在反序列化期间从对象的类中删除变量不会引发异常?