MyBatis-pagination: введение
Mybatis — это превосходный ORM-фреймворк, широко используемый в повседневной работе. Однако он не предоставляет функцию разбиения на страницы, но позволяет разработчикам создавать собственные решения благодаря механизму плагинов. Это позволяет создать универсальный плагин для разбивки на страницы.
Основные функции:
Интеграция: Для интеграции необходимо добавить зависимости в файл 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);
}
Примечание:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )