我们如何使用mysql';iBatis的一般限制?

我们如何使用mysql';iBatis的一般限制?,mysql,ibatis,Mysql,Ibatis,我使用iBATIS2.3.4 我有以下疑问: <select id="getUserList" resultMap="userListResult"> SELECT id, name, login, email FROM users </select> 然后iBatis无限制地生成查询,并在获取过程中跳过额外的数据。 我相信有限制的工作会更

我使用iBATIS2.3.4

我有以下疑问:

<select id="getUserList" resultMap="userListResult">
    SELECT
            id,
            name,
            login,
            email
    FROM
          users
</select>
然后iBatis无限制地生成查询,并在获取过程中跳过额外的数据。 我相信有限制的工作会更快

我们怎样才能推动iBatis普遍使用极限?可能吗?
也许我们可以描述一些方言?

作为参数通过限制有什么不对? 例如(在Postgresql中,我认为Mysql是类似的):


如果您希望一页一页地显示和搜索结果,您将如何在这种情况下实现分页?您的DAO只知道如何处理限制/偏移量。上层必须计算它们,以便按照自己的意愿进行分页,这与iBatis无关。嗨,这是第二版还是第三版?我的内联(#)参数始终转换为?使用这段代码。@Zeratul:除非我误解了您的问题:内联参数通常被转换为“?”,它们是PreparedStatement中的参数。我解决了这个问题,哈希(内联)参数只能用于值(其中id=#id#),对于直接动态sql,它们需要用美元符号包装:LIMIT$LIMIT$OFFSET$OFFSET$
sqlMap.queryForList("base.getUserList", startPosition, numItems);
<select id="getUserList" resultMap="userListResult">
    SELECT  ...
    FROM  users
    LIMIT #limit:INTEGER# OFFSET #offset:INTEGER#
</select>
  Map params = new HashMap();
  params.put("limit",10);
  params.put("offset",100);
  res = sqlMap.queryForList("base.getUserList", params);