Как мы можем использовать ограничения mysql с iBatis в целом? - PullRequest
3 голосов
/ 14 июля 2010

Я использую 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 Ответ

3 голосов
/ 14 июля 2010

Что не так с передачей лимита, смещения в качестве параметров? Например (в Postgresql, я думаю, Mysql похож):

<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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...