我使用的是iBatis 2.3.4
我有以下查询:
<select id="getUserList" resultMap="userListResult">
SELECT
id,
name,
login,
email
FROM
users
</select>
当我需要提供分页时,我使用:
sqlMap.queryForList("base.getUserList", startPosition, numItems);
然后iBatis无限制地生成查询,并在获取期间跳过额外的数据。 我相信有限制的工作会更快。
我们如何推动iBatis一般使用LIMIT?可能吗? 可能我们可以描述一些方言吗?
答案 0 :(得分:3)
传递限制,偏移作为参数有什么问题? 例如(在Postgresql中,我认为Mysql类似):
<select id="getUserList" resultMap="userListResult">
SELECT ...
FROM users
LIMIT #limit:INTEGER# OFFSET #offset:INTEGER#
</select>
然后在你的dao你可以编码:
Map params = new HashMap();
params.put("limit",10);
params.put("offset",100);
res = sqlMap.queryForList("base.getUserList", params);