使用mysql jdbc获取快速结果集
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用mysql jdbc获取快速结果集相关的知识,希望对你有一定的参考价值。
我有一个包含6001215行数据的lineitem表,我希望快速获得此查询SELECT * FROM LINEITEM
的结果,然后处理内存中结果集的数据。我有这个代码,但无论如何它仍然很慢。
String Query = "SELECT * FROM LINEITEM";
Properties p = new Properties();
p.setProperty("user", "root");
p.setProperty("password", "root");
p.setProperty("MaxPooledStatements", "10000");
p.setProperty("cachePrepStmts", "true");
p.setProperty("useServerPrepStmts", "true");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/tpch",p);
conn.setAutoCommit(false);
PreparedStatement preparedStatement = conn.prepareStatement(Query);
resultSet = preparedStatement.executeQuery(Query);
} catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
答案
请在查询运行之前尝试建立数据库连接,使得方法中的连接可以降低性能,当您再次调用该方法时,它将每次创建数据库连接并使用preparedStatement.executeQuery();而不是preparedStatement.executeQuery(Query);
使用POJO类实现,以便将从数据库表中获取的Resulset保存到实体列表中,然后随时检索列值。
以上是关于使用mysql jdbc获取快速结果集的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Java JDBC 中的 callableStatement 获取滚动不敏感的结果集?
正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space