gpt4 book ai didi

java - MySQL 内存不足 Java 堆空间

转载 作者:行者123 更新时间:2023-11-29 13:18:20 27 4
gpt4 key购买 nike

当我尝试从 MySQL 语句检索一些数据时,我收到上述错误,因为该错误指出错误位于第 118 行;这是 MySQL:

                    .prepareStatement("SELECT orderr.* FROM orderr JOIN person ON orderr.personID = person.personID WHERE person.first_name = ?",java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY, Integer.MIN_VALUE);

第 118 行附近的代码:

            int index = 0;
if (rs.next()) {
index++;
rs.beforeFirst();
while (rs.next()) {
for (int i = 1; i < 4; i++) { // retrive column data from order
message.append(rs.getInt(i)); //table and append to sb.
if(i != 3)message.append(" "); <---line 118.
}
if(rs.next()){
rs.absolute(index);
message.append("\n");
}
}
}

我得到的确切错误是:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2367)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
at java.lang.StringBuffer.append(StringBuffer.java:237)
at stl.Sql.printPersonsOrders(Sql.java:118)
at stl.Main.main(Main.java:19)

只有当我向表中添加了两次相同的数据然后尝试检索时,才会出现此错误,数据量应该只有一两行。

最佳答案

您的rs.absolute(index)将光标移回(到第 1 行),while(rs.next()) 循环永远不会结束。对于只有一行的结果集来说这没有问题,因为结果集偏移量为 1。

关于java - MySQL 内存不足 Java 堆空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21184950/

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