有没有办法获取n行记录开始形式x行?

时间:2014-07-25 06:50:11

标签: java mysql jdbc

我想从表中获取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();
        }
    }

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

提前致谢

1 个答案:

答案 0 :(得分:1)

JDBC'获取大小'不是为了限制结果集,请参阅this question

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

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