【问题标题】:is there any way to fetch n number of record start form x row?有没有办法从 x 行中获取 n 条记录?
【发布时间】:2014-07-25 06:50:11
【问题描述】:

我想从包含数百万条记录的表中获取 50 条记录不使用限制

我关注了

private void createMYSQLConnection() throws SQLException {
        CachedRowSet crs = new CachedRowSetImpl();
        Connection conn = null;
        Statement stmt = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/mydb",
                    "root", "root");

            conn.setAutoCommit(false);
            crs.setPageSize(100);
            crs.setUsername("root");
            crs.setPassword("Glass4#21");
            crs.setCommand("SELECT * FROM trn_22_gouk_final_attendance");
            crs.absolute(10);
            crs.setFetchSize(10);
            crs.execute(conn);
            while (crs.next()) {
                System.out.println(crs.getObject(1));
            }

        } catch (SQLException se) {
            se.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            crs.close();
        }
    }

但它不起作用...... 任何建议

提前致谢

【问题讨论】:

  • 我觉得你需要为此添加行号子句而不是获取计数
  • 这可能会有所帮助:java.avdiel.com/Tutorials/JDBCPaging.html
  • 我不想根据以下内容编写特定于数据库的代码:java.avdiel.com/Tutorials/JDBCPaging.html 对于 mysql 我必须使用 limit 对于 oracle 我必须使用 rowNum但我想要独立于数据库的代码

标签: java mysql jdbc


【解决方案1】:

JDBC 的“获取大小”并非用于限制结果集,请参阅this question

JDBC 没有用于分页的 API,请参阅this question 中的答案。

由于每种数据库类型的分页关键字不同,因此需要为所使用的数据库翻译指定的分页。 Hibernate 可以做到这一点,如图here

【讨论】:

    猜你喜欢
    • 2014-05-30
    • 2021-10-19
    • 1970-01-01
    • 2021-06-17
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多