gpt4 book ai didi

java - 如何在运行选择查询时使用 java 并发

转载 作者:行者123 更新时间:2023-12-02 05:44:56 26 4
gpt4 key购买 nike

我有三个查询要运行,所有查询都类似于“select * from table”,它们花费了很多时间。我想使用java并发并行运行所有查询,我如何实现这一点。

最佳答案

您可以将数据库调用包装在 Callable 中,如下所示:

public class SqlTask implements Callable<ResultSet> {

private String sql;

public SqlTask(final String sql) {
this.sql = sql;
}

@Override
public ResultSet call() throws Exception {
Connection connection = ...; // get connection
Statement stmt = connection.createStatement();
return stmt.executeQuery(this.sql);
}
}

然后使用 ExecutorService 并行执行它们,例如:

    final ExecutorService executor = Executors.newCachedThreadPool();
final Future<ResultSet> futureResult1 = executor.submit (new SqlTask("SELECT * FROM table1"));
final Future<ResultSet> futureResult2 = executor.submit(new SqlTask("SELECT * FROM table2"));
final Future<ResultSet> futureResult3 = executor.submit(new SqlTask("SELECT * FROM table3"));
final ResultSet result1 = futureResult1.get();
final ResultSet result2 = futureResult2.get();
final ResultSet result3 = futureResult3.get();

关于java - 如何在运行选择查询时使用 java 并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24163900/

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