是否有任何 jar 可用于在 java 中更快地执行 sql 查询? [关闭]

Posted

技术标签:

【中文标题】是否有任何 jar 可用于在 java 中更快地执行 sql 查询? [关闭]【英文标题】:Is there any jar is available to execute sql queries faster in java? [closed] 【发布时间】:2016-07-27 11:32:21 【问题描述】:

在 java 中,我使用 Prepared 语句从数据库中获取值。在这里我使用了索引,然后我也绑定了值,我使用了以下查询

Select pname from project where pid="12547";

像这样我需要从表项目中获取大约 3000 个“pname”。对于此执行,它需要更多时间。有没有可以在java中更快地执行sql查询的jar?

【问题讨论】:

使用select pname from project where pid IN(xx, yy, ...)? 没有这样的罐子。如上一个答案中所建议的,您可以减少查询的数量。如果由于某种原因,您需要按顺序进行这些调用,那么您需要调整 DB(在 pid 上添加索引以防它不是主键等)。 我需要从 java 执行此语句,以及如何使用准备好的语句绑定 [IN()] 内的值。因为这些值是动态的.. 【参考方案1】:

您为什么要为这 3000 个 pid 执行单独的查询。如果您确定要执行那么多查询,可以切换到最适合您逻辑的任何查询:

select pname from project where pid BETWEEN 1000 and 4000;

select pname from project where pid IN (1000, 1001, ...);

select pname from project where pid > 2000 and pid < 5000;

您可以在 where 子句中使用这些来修改您的 SQL 查询

Operator  Description
=         Equal
<>        Not equal. Note: In some versions of SQL this operator may be written as !=
>         Greater than
<         Less than
>=        Greater than or equal
<=        Less than or equal
BETWEEN   Between an inclusive range
LIKE      Search for a pattern
IN        To specify multiple possible values for a column

编辑

如果你的价值观是动态的,那么

String selectSQL = "select pname from project where pid IN(?, ?);";
dbConnection = getDBConnection();
preparedStatement = dbConnection.prepareStatement(selectSQL);
preparedStatement.setInt(1, 2000);
preparedStatement.setInt(2, 5000);

// execute select SQL stetement
ResultSet rs = preparedStatement.executeQuery();

【讨论】:

我需要从 java 执行此语句,以及如何使用准备好的语句绑定 [IN()] 中的值。因为这些值是动态的.. 我已经更新了我的答案,如果你的价值观是动态的,请参考它。 感谢您的回答,但您特别提到了两个问号。实际上该计数也必须是动态的,请尝试帮助我... 那是实际的代码。那些问号? 称为位置参数。请访问this 教程以深入了解这个东西是如何工作的。 嗯,我已经完成了,但在我的代码中我使用了完全动态的值,所以不能手动传递这些值。 String sql = " SELECT [PName] FROM Project where [Pid]=?"; preparestmt = conn.prepareCall(sql);准备好的 .setInt(1, PId);就像我以前用过的一样。

以上是关于是否有任何 jar 可用于在 java 中更快地执行 sql 查询? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

是否有任何更快、更少资源消耗的查询用于相同目的?

用于从 MP3 文件中提取音频信息的 Java 库

是否有任何选项可以使用 tsc 或 ts-node 或其他任何东西更快地编译和运行 ts 代码?

谷歌或工具可用于 jdk 8 吗?

是否有任何功能原因将版本号包含在JAR文件的名称中?

执行内存中的 jar