1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hengboy-mybatis-pageable

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

欢迎使用自动化分页插件

Maven central

欢迎关注公众号

微信公众号 关注微信公众号,回复加群,获取交流群群号。

MyBatis-Pageable — это плагин для автоматизации процесса разбивки на страницы. Он основан на перехватчике (Interceptor) плагина MyBatis и позволяет перехватывать два перегруженных метода Executor.query для вычисления информации о страницах и автоматического выполнения различных запросов в зависимости от конфигурации базы данных Dialect для подсчёта общего количества.

Поддерживаемые базы данных

В настоящее время MyBatis-Pageable поддерживает следующие основные базы данных:

  • DB2;
  • Derby;
  • DM;
  • H2;
  • HSQL;
  • InforMix;
  • Mariadb;
  • MySQL;
  • Oracle;
  • Postgres;
  • SqlLite;
  • SQL Server 2000 и выше.

Быстрый старт

Плагин MyBatis-Pageable можно использовать как в традиционных проектах Spring, так и в последних версиях SpringBoot.

Интеграция SpringBoot

MyBatis-Pageable уже загружен в центральный репозиторий Maven, и вы можете настроить его в любое время. Если вы используете проект, управляемый Maven, скопируйте следующий код в файл конфигурации pom.xml:

<dependency>
     <groupId>com.gitee.hengboy</groupId>
     <artifactId>spring-boot-starter-mybatis-pageable</artifactId>
     <version>{lastVersion}</version>
 </dependency>

Если вы используете проект, управляемый Gradle, вам необходимо скопировать следующий код в свой файл build.gradle:

compile 'com.gitee.hengboy:mybatis-pageable:{lastVersion}'

Обратите внимание, что приведённый выше контент необходимо изменить {lastVersion} на текущий номер версии MyBatis-Pageable.

Настройка плагина

После добавления зависимости starter вы можете выполнить настройку в файле конфигурации application.yml или application.properties. Ниже приведён пример конфигурации в формате yml:

hengboy:
  pageable:
      dialect: mysql

При использовании pageable вам нужно настроить только один диалект базы данных. Если вы используете базу данных MySQL или MariaDB, вы можете не настраивать диалект базы данных.

Традиционная интеграция Spring

Использование mybatis-config.xml для настройки плагина

Если ваш проект использует конфигурацию mybatis-config.xml, вам необходимо добавить следующий код в ваш конфигурационный файл:

<plugins>
    <plugin interceptor="com.gitee.hengboy.mybatis.pageable.interceptor.MyBatisExecutePageableInterceptor">
        <!-- 配置数据库方言 -->
        <property name="dialect" value="mysql"/>
	</plugin>
</plugins>
Использование application.xml для настройки плагина

Конечно, если вы не используете конфигурационный файл mybatis-config.xml для настройки плагина, вы также можете интегрировать MyBatis-Pageable через список плагинов SqlSessionFactoryBean. Вот конфигурация:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <!-- 配置插件列表 -->
  <property name="plugins">
    <array>
      <bean class="com.gitee.hengboy.mybatis.pageable.interceptor.MyBatisExecutePageableInterceptor">
        <property name="properties">
          <!-- 配置数据库方言 -->
          <value>
            dialect=mysql
          </value>
        </property>
      </bean>
    </array>
  </property>
</bean>

Как использовать?

На данный момент использование MyBatis-Pageable довольно просто. Существует класс запроса PageableRequest для автоматической разбивки на страницы, давайте рассмотрим простой пример:

Page<UserEntity> page = PageableRequest.of(1, 5).request(() -> userMapper.selectAll());
  • of настраивает текущую страницу и ограничение на количество элементов на странице.
  • request требует передачи бизнес-логики метода, то есть метода, который должен быть выполнен для разбивки на страницы.

Подробное описание объекта Page

С помощью одной строки кода вы можете автоматически разбить на страницы и получить информацию о разбивке на страницы. После разбивки на страницы мы можем получить доступ к содержимому через объект Page. Что мы можем узнать?

  • data: список данных после разбивки на страницы, конкретные возвращаемые значения могут быть получены с использованием универсального приёма Page.
  • totalPages: общее количество страниц.
  • totalElements: общее количество элементов.
  • pageIndex: текущая страница.
  • pageSize: ограничение на количество элементов на каждой странице.
  • offset: начало разбивки на страницы.
  • endRow: конец разбивки на страницы.
  • hasNext: существует ли следующая страница, true: существует, false: не существует.
  • hasPrevious: существует ли предыдущая страница, true: существует, false: не существует.
  • isFirst: является ли это первой страницей, true: первая страница, false: не первая страница.
  • isLast: является ли это последней страницей, true: последняя страница, false: не последняя страница.

Запрос на следующую страницу

В процессе разработки может возникнуть ситуация, когда передаваемая страница равна 1, но после различных суждений мне нужно запросить данные предыдущей или следующей страницы, первой страницы и т. д. В этом случае вы можете использовать методы next(), previous(), first() объекта PageableRequest для обработки таких ситуаций. Пример:

Pageable pageable = PageableRequest.of(2, 10);
        if (xx = xx) {
            pageable.next();
        }
        Page<UserEntity> page = pageable.request(()->userMapper.selectAll());

Это пример запроса следующей страницы. Конечно, эта функция предназначена для максимально удобного использования разбивки на страницы. Аналогично, методы previous() и first() также могут использоваться таким образом.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Поддерживает универсальный плагин Mybatis для постраничного просмотра данных с 12 различными базами данных, поддерживает использование в основных базах данных на данный момент, позволяет выполнять постраничное чтение данных с использованием минимального количества кода. Развернуть Свернуть
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/hengboy-mybatis-pageable.git
git@api.gitlife.ru:oschina-mirror/hengboy-mybatis-pageable.git
oschina-mirror
hengboy-mybatis-pageable
hengboy-mybatis-pageable
master