我使用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?可能吗?
也许我们可以形容一些方言?
解决方法:
将limit,offset作为参数传递怎么了?
例如(在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);