我们如何通常使用iBatis的mysql限制?

时间:2010-07-14 10:13:38

标签: mysql ibatis

我使用的是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?可能吗? 可能我们可以描述一些方言吗​​?

1 个答案:

答案 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);