Mybatis-Plus | Utilice Mybatis-Plus para la consulta de paginación

MyBatis-Plus (MP abreviado) es una herramienta de mejora para MyBatis. Sobre la base de MyBatis, solo mejora y no cambia. Nace para simplificar el desarrollo y mejorar la eficiencia.
Características de MyBatis-Plus:
Sin intrusión : solo mejora y no cambia, su introducción no afectará el proyecto existente, es tan suave como la seda y la pérdida es pequeña: el CURD básico se inyectará automáticamente al inicio, el rendimiento básicamente no es pérdida y está directamente orientado a objetos Opere
poderosas operaciones CRUD : Mapeador general integrado, servicio general, solo una pequeña cantidad de configuración puede realizar la mayoría de las operaciones CRUD de una sola tabla, constructor de condiciones más poderoso, para satisfacer todo tipo de necesidades de uso,
admite la invocación de formularios Lambda : a través de la expresión Lambda, Escriba cómodamente todo tipo de condiciones de consulta, sin necesidad de preocuparse por escribir campos incorrectos.
Admite la generación automática de claves primarias : admite hasta 4 estrategias de claves primarias (incluida la secuencia de generador de ID única distribuida), configurable libremente y solución perfecta para problemas de claves primarias.
Admite el modo ActiveRecord : Admite la llamada al formulario ActiveRecord, las clases de entidad solo necesitan heredar la clase Model para realizar operaciones CRUD potentes.
Admite operaciones generales globales personalizadas : Admite la inyección de métodos generales globales (escribe una vez, usa en cualquier lugar)
Generador de código incorporado : usa código o complemento Maven Genere rápidamente el código de la capa del Mapeador, el Modelo, el Servicio, el Controlador, el motor de plantillas de soporte y más configuraciones personalizadas, etc. Puede usar el
complemento de paginación incorporado : Basado en la paginación física de MyBatis, los desarrolladores no necesitan preocuparse por operaciones específicas. Después de configurar el complemento, escriba la paginación Equivalente a la consulta de lista normal
El complemento de paginación admite una variedad de bases de datos : admite MySQL, MariaDB, Oracle, DB2, H2, HSQL, SQLite, Postgre, SQLServer y otros
complementos de análisis de rendimiento integrados en la base de datos : se pueden generar declaraciones SQL y su tiempo de ejecución; se recomienda habilitar esta función durante el desarrollo y las pruebas , Puede descubrir rápidamente consultas lentas.
Complemento de interceptación global incorporado : Proporciona análisis y bloqueo inteligente de la operación de actualización y eliminación de tablas completas, y también puede personalizar las reglas de interceptación para evitar errores de operación

Uno, dependencia de Maven

	<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
    </dependencies>

2. El archivo de configuración principal (application.properties)

# 端口
server.port=8081
# 上下文
server.servlet.context-path=/swagger
# 驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# url
spring.datasource.url=jdbc:mysql://localhost:3306/excel?useUnicode=true&characterEncoding=utf-8
# 用户名
spring.datasource.username=root
# 密码
spring.datasource.password=123456
# 映射文件文件路径
mybatis-plus.mapper-locations=classpath:/com/jonsson/dao/*Dao.xml
# 类型别名
mybatis-plus.type-aliases-package=com.jonsson.entity
# 打印sql
logging.level.root.com.jonsson.dao=debug

Tres, objeto interceptor de paginación de registro de extensión MVC (MybatisPlusConfig)

@Configuration
@Slf4j
public class MybatisPlusConfig {
    
    
    @Bean
    public PaginationInterceptor paginationInterceptor() {
    
    
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        log.debug("配置mybatis-plus分页插件");
        // 方言
        paginationInterceptor.setDialectType("mysql");
        return paginationInterceptor;
    }
}

Cuatro, entidad clase de entidad

@Data
public class Car {
    
    
    private Integer id;
    private String name;
    private Integer price;
    private String colour;
    private String brand;
}

Cinco, interfaz dao

@Repository
@Mapper
public interface CarDao extends BaseMapper<Car> {
    
    

}

Seis, interfaz de servicio y clase de implementación.

public interface CarService {
    
    
    public IPage<Car> findAll();
}
@Service
public class CarServiceImpl implements CarService {
    
    
    @Autowired
    private CarDao carDao;

    @Override
    public IPage<Car> findAll() {
    
    
    	// 第一个参数是当前页,第二个参数是页大小
        Page<Car> carPage = new Page<>(1, 2);
        return carDao.selectPage(carPage, null);
    }
}

Siete, controlador

@RestController
@Slf4j
public class CarController {
    
    
    @Autowired
    private CarService carService;

    @RequestMapping("/carPage")
    public ResultVO<Object> carPage() {
    
    
        IPage<Car> carIPage = carService.findAll();
        log.debug(carIPage.toString());
        if (carIPage.getRecords().size() > 0) {
    
    
            return ResultVOUtils.success(carIPage.getRecords());
        } else {
    
    
            return ResultVOUtils.error("错误");
        }
    }
}

(、 Vo (ResultVO)

@Data
public class ResultVO<T> {
    
    
    private Integer code;
    private String msg;
    private T data;
}

Nueve, util (ResultVOUtils)

public class ResultVOUtils {
    
    
    public static ResultVO<Object> success(Object object) {
    
    
        ResultVO<Object> objectResultVO = new ResultVO<>();
        objectResultVO.setCode(0);
        objectResultVO.setMsg("成功");
        objectResultVO.setData(object);
        return objectResultVO;
    }

    public static ResultVO<Object> success() {
    
    
        ResultVO<Object> objectResultVO = new ResultVO<>();
        objectResultVO.setCode(0);
        objectResultVO.setMsg("成功");
        objectResultVO.setData(null);
        return objectResultVO;
    }

    public static ResultVO<Object> error(String msg) {
    
    
        ResultVO<Object> objectResultVO = new ResultVO<>();
        objectResultVO.setCode(1);
        objectResultVO.setMsg(msg);
        return objectResultVO;
    }
}

Nueve, script de base de datos

DROP TABLE IF EXISTS `car`;
CREATE TABLE `car` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(255) DEFAULT NULL COMMENT '名称',
  `price` int(11) DEFAULT NULL COMMENT '价格',
  `colour` varchar(255) DEFAULT NULL COMMENT '颜色',
  `brand` varchar(255) DEFAULT NULL COMMENT '品牌',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='汽车';
LOCK TABLES `car` WRITE;
INSERT INTO `car` VALUES (1,'丰田',100,'黑色','丰田'),(2,'大众',150,'白色','大众'),(3,'东风',120,'蓝色','东风'),(4,'凯迪拉克',150,'黑色','凯迪拉克'),(5,'奥迪',200,'红色','奥迪'),(6,'凯迪拉克',150,'黑色','凯迪拉克'),(7,'奥迪',200,'红色','奥迪'),(8,'宝马',300,'灰色','宝马');
UNLOCK TABLES;

Solicitar resultado

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/y1534414425/article/details/105638684
Recomendado
Clasificación