通常如何在iBatis中使用mysql的限制?

我使用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);
上一篇:java-将Spring 2.5与Ibatis 3集成


下一篇:数据库学习笔记【新手教程】—— 如何建立数据库