使用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获取快速结果集的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis快速入门

用JDBC操作MySQL——获取表的大小

MyBatis总结一:快速入门

jdbc:我啥时候可以关闭啥

如何从 Java JDBC 中的 callableStatement 获取滚动不敏感的结果集?

正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space