使用mysql jdbc获得快速结果集

时间:2019-04-04 13:29:00

标签: java mysql resultset

我有一个包含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());
       }

1 个答案:

答案 0 :(得分:0)

请在运行查询之前尝试建立数据库连接,当您再次调用该方法时,在方法中建立连接会降低性能,因为该方法每次都会创建数据库连接并使用prepareStatement.executeQuery();。而不是prepareStatement.executeQuery(Query);

使用POJO类实现将从数据库表中获取的Resulset保存到实体列表中,然后在需要时检索列值。