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

OSCHINA-MIRROR/itlangz-mybatis-pagination

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

MyBatis-pagination: введение

Mybatis — это превосходный ORM-фреймворк, широко используемый в повседневной работе. Однако он не предоставляет функцию разбиения на страницы, но позволяет разработчикам создавать собственные решения благодаря механизму плагинов. Это позволяет создать универсальный плагин для разбивки на страницы.

Основные функции:

  1. В методе запроса Mapper можно передать объект com.itlangzi.mybatis.page.Pagination с любыми параметрами. Для определения запроса с разбивкой на страницы необходимо правильно установить значения page и size.
  2. Поддерживает разбиение на страницы MySQL/Mariadb, Oracle, SQL Server 2012.
  3. Автоматически определяет язык разбивки на страницы без необходимости настройки. После переключения между несколькими источниками данных всё ещё может корректно распознавать язык разбивки на страницы.
  4. Позволяет возвращать объект com.itlangzi.mybatis.page.Pagination напрямую.
  5. Может быть интегрирован с Spring Boot и обычными проектами MyBatis.

Интеграция: Для интеграции необходимо добавить зависимости в файл pom.xml:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>

1. Интеграция в обычный проект В конфигурационном файле MyBatis-config.xml необходимо выполнить следующую настройку:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- .... -->
    <!-- 分页工厂-->
    <objectFactory type="com.itlangzi.mybatis.factory.PaginationFactory"></objectFactory>
    <!--分页返回对象包装工厂-->
    <objectWrapperFactory type="com.itlangzi.mybatis.factory.PaginationWrapperFactory"/>
    <plugins>
        <!--分页插件-->
        <plugin interceptor="com.itlangzi.mybatis.interceptors.PaginationInterceptor"></plugin>
    </plugins>
    <!-- .... -->
</configuration>

2. Интеграция с Spring Boot Необходимо добавить зависимость. 2.1 Кодированная интеграция

@org.springframework.context.annotation.Configuration
public class MyBatisConfiguration implements ConfigurationCustomizer {
	@Override
	public void customize(Configuration configuration) {
		// 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn
		// 的类似映射。默认false
		configuration.setMapUnderscoreToCamelCase(true);
		configuration.setLogPrefix("MyBatis-");
		// 设置分页工厂
		configuration.addInterceptor(registryPaginationInterceptor());
		configuration.setCacheEnabled(true);
		// 设置自定义的分页包装类工厂
		configuration.setObjectWrapperFactory(new PaginationWrapperFactory());
		// 设置分页工厂
		configuration.setObjectFactory(new PaginationFactory());
	}
	public Interceptor registryPaginationInterceptor() {
		return new PaginationInterceptor();
	}
}

2.2 Конфигурационная интеграция
2.2.1 В файле MyBatis-config.xml добавьте следующую конфигурацию:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- .... -->
    <!-- 分页工厂-->
    <objectFactory type="com.itlangzi.mybatis.factory.PaginationFactory"></objectFactory>
    <!--разбивка на страницы возвращает объект пакета-->
    <objectWrapperFactory type="com.itlangzi.mybatis.factory.PaginationWrapperFactory"/>
    <plugins>
        <!--разбиение на страницы плагина-->
        <plugin interceptor="com.itlangzi.mybatis.interceptors.PaginationInterceptor"></plugin>
    </plugins>
    <!-- .... -->
</configuration>

2.2.2 В файле application.yml добавьте конфигурацию:

mybatis:
  config-location: classpath*:mybatis/mybatis-config.xml

Пример использования DemoMapper.xml:

<select id="findByPage" resultType="com.example.Demo">
    select * from t_demo
</select>

DemoMapper.java:

class DemoMapper{
    Pagination<Demo> findByPage(Demo demo, Pagination<Demo> page);
}

Примечание:

  1. При использовании разбивки на страницы возвращаемый объект можно напрямую использовать для получения списка, но рекомендуется возвращать Pagination. Программа будет иметь дополнительную обработку. Если вы настаиваете на возврате List, вы можете добавить код PaginationHelper.clear() в пост-обработку перехватчика или фильтра. Это эффективно предотвращает возникновение этой ситуации.
  2. Если значения полей page и size установлены неправильно (обычно page больше или равно 0, size больше 0), разбивка на страницы обрабатываться не будет.
  3. Этот проект, помимо зависимостей mybatis, также зависит от druid для обработки SQL-запросов и slf4j-api для ведения журнала. Если эти зависимости уже есть в проекте, их можно исключить из списка зависимостей.

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

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

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

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

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