gpt4 book ai didi

java - 如何将所有数据分块插入数据库

转载 作者:行者123 更新时间:2023-11-29 13:54:43 25 4
gpt4 key购买 nike

我正在尝试使用以下方法一次插入所有数据:

userModel.setServiceData(gson.toJson(sortedResponse).getBytes());

这是因为大量数据导致内存不足。

所以我尝试使用类似的方法将数据分块添加到 postgres 数据库中:

byte[] chunkedMessage = {};

for (Iterator<Message> iterator = sortedResponse.iterator(); iterator.hasNext();) {
Message message = (Message) iterator.next();
chunkedMessage = gson.toJson(message).getBytes();
userModel.setServiceData(chunkedMessage);
}

显然,这将最终存储最后一个 block ,但不是所有 block 。

我正在使用 hibernate,所以想知道是否有任何简单的方法可以使用 hibernate 查询,或者可能像上面的代码一样简单。

最佳答案

不要使用数组(byte[]),因为它需要为要插入数据库的完整数据分配内存并切换到流。将 userModel.serviceData 的类型从 byte[] 更改为 java.sql.Blob,这允许从 InputStream 创建一个新的 Blob 实例或读者:

Blob blob = Hibernate.getLobCreator(session).createBlob(stream, size);

关于java - 如何将所有数据分块插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34433898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com