gpt4 book ai didi

java - 将结果集添加到 ArrayList 需要花费大量时间

转载 作者:行者123 更新时间:2023-12-01 19:41:46 24 4
gpt4 key购买 nike

这是我的代码,我正在其中运行查询并将结果集添加到 ArrayList 中。修改后的代码

private ArrayList<String> getEventsFromShares() throws SQLException {
Statement eventStmt = null;
ResultSet rs = null;
ArrayList<String> eventsList = new ArrayList<String>(10000);
try {
eventStmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
conn.setAutoCommit(false);
System.out.println("Getting data from shares table");
rs = eventStmt.executeQuery(
"select s.event_id from tso_shares s join ife.entityids i on s.event_id = i.entityid where to_char(i.datemodified,'YYYY') = "
+ year + "");
eventStmt.setFetchSize(500);
while (rs.next()) {
eventsList.add(rs.getString(1));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
rs.close();
eventStmt.close();
}
System.out.println("eventsMap" + eventsList.size());
return eventsList;
}

查询只需要几秒钟就可以出来,但是将dog添加到ArrayList中需要将近15分钟的时间。

有人可以帮我找出问题或者如何改进我的代码吗?

最佳答案

看起来您只需要表 s 中的 event_id 列,因此将 SQL 语句更改为 select s.event_id 而不是 选择 s.*。然后,您可以使用 rs.getString(1) 而不是 rs.getString("event_id")

ResultSet 中提取值>

如果您知道 SQL 查询将返回大约多少行,您还可以为 ArrayList 指定初始容量,例如

ArrayList<String> list = new ArrayList<>(500)

关于java - 将结果集添加到 ArrayList 需要花费大量时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55156847/

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