【发布时间】:2019-04-24 12:10:54
【问题描述】:
我想在java中通过mysql jdbc执行以下查询:SELECT COUNT (*) FROM ORDERS, CUSTOMER WHERE O_ORDEYKEY = O_CUSTKEY
我有这个代码:
Connection conn = new DatabaseConnection().createMySQLConnection();
int totalRows=0;
for(int j=0;j<tables.size();j++)
{
Statement stmt = null;
ResultSet rs = null;
int rowCount = -1;
try {
conn.setAutoCommit(false);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery("SELECT COUNT(*) FROM " + tables.get(j)
+ " WHERE O_ORDERKEY = O_CUSTKEY;");
rs.next();
rowCount = rs.getInt(1);
totalRows= totalRows+rowCount;
} finally {
rs.close();
stmt.close();
}
}
但我想更快地运行它。我该怎么做?
【问题讨论】:
-
我认为您在其中缺少
" -
添加到 @RiggsFolly 的评论 java 至少支持 JDK 8 中的 prepared statements 以防止 SQL 注入,我建议您使用它们
-
“但我想更快地运行它。我该怎么做?”索引很可能会有所帮助。
-
This 可能会有所帮助 - 将相同的概念应用于您的特定数据库。
-
要添加到@RaymondNijland 评论 SQL 一直以来都有 JOIN 语法,您也将从学习中受益