我想从数据库中读取10k个记录的块中的数据.
我在维基百科上发现了Result limits,似乎很明显,这不能用便携式的方法来完成.
另一种方法可能是JdbcTemplate,它为查询提供了许多方法,但是我如何确定已经读取了足够的行.通过像RowMapper和ResultSetExtractor这样的回调,它不能被指示,读取了足够的数据.
编辑:我正在为JdbcTemplate寻找解决方案
这post建议使用我忽视的setMaxRows.
解决方法
Grab
Hibernate或
JPA.两者都熟悉各种数据库方言,并将透明地处理引擎盖下的讨厌的DB细节.
在Hibernate中,您可以使用Criteria#setFirstResult()
和Criteria#setMaxResults()
进行分页.
List users = session.createCriteria(User.class) .addOrder(Order.asc("id")) .setFirstResult(0) // Index of first row to be retrieved. .setMaxResults(10) // Amount of rows to be retrieved. .list();
在JPA中,您可以使用Query#setFirstResult()
和Query#setMaxResults()
进行类似操作.
List users = em.createquery("SELECT u FROM User u ORDER BY u.id"); .setFirstResult(0) // Index of first row to be retrieved. .setMaxResults(10) // Amount of rows to be retrieved. .getResultList();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。