关注微信公众号,回复
加群
,获取交流群群号。
MyBatis-Pageable — это плагин для автоматизации процесса разбивки на страницы. Он основан на перехватчике (Interceptor) плагина MyBatis и позволяет перехватывать два перегруженных метода Executor.query для вычисления информации о страницах и автоматического выполнения различных запросов в зависимости от конфигурации базы данных Dialect для подсчёта общего количества.
В настоящее время MyBatis-Pageable поддерживает следующие основные базы данных:
Плагин MyBatis-Pageable можно использовать как в традиционных проектах Spring, так и в последних версиях 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, вы можете не настраивать диалект базы данных.
Если ваш проект использует конфигурацию mybatis-config.xml, вам необходимо добавить следующий код в ваш конфигурационный файл:
<plugins>
<plugin interceptor="com.gitee.hengboy.mybatis.pageable.interceptor.MyBatisExecutePageableInterceptor">
<!-- 配置数据库方言 -->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
Конечно, если вы не используете конфигурационный файл 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());
С помощью одной строки кода вы можете автоматически разбить на страницы и получить информацию о разбивке на страницы. После разбивки на страницы мы можем получить доступ к содержимому через объект Page. Что мы можем узнать?
В процессе разработки может возникнуть ситуация, когда передаваемая страница равна 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 )