java - 使用 LIMIT AND OFFSET 时,H2 嵌入式数据库不返回正确的结果
问题描述
我正在使用以下查询对表格进行分页。
select *
from TABLE_NAME
LIMIT 4 OFFSET 10
我的桌子有 12 行。当我从 Squirrel 运行此查询时,它会返回响应,但是当我使用 JDBC 连接来获取它时,它不会返回数据。
如果我使用 LIMIT AS 14 AND OFFSET 4,相同的查询可以正常工作。(我的 JDBC 没有问题)。
Java代码:
List<DataPoolEntity> list = new ArrayList<>();
try {
String fetch = "select * from TABLENAME LIMIT " + limit + " OFFSET " + offset;
java.sql.PreparedStatement stmt = conn.prepareStatement(fetch);
java.sql.ResultSet result = stmt.executeQuery();
list = generateDataPoolEntityList(result); (custom code) - ignore this
result.close();
stmt.close();
return list;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
解决方案
Order by
应该是之前limit
。请参阅规范。
推荐阅读
- xamarin.forms - xamarin 表单删除 grid.rows 之间的间距不起作用
- iterm2 - 如何在 iterm2 中切换时区?
- angular - 将对象转换为具有接口的对象
- mysql - 使用 INNER JOIN 时 SQL 返回多个相同记录
- java - Java 8 分组为对象集合
- java - ImagesService.applyTransform 上的间歇性 IllegalArgumentException
- css - CSS 可以创建多色梯形吗?
- sql - Always Encrypted 参数的默认值
- dart - Flutter:使用 navigator.dart 时断言失败
- c# - Identifier 为 Null 或为空,实体框架,更新数据库