Primeros pasos con mybatisPlus


inserte la descripción de la imagen aquí

primer vistazo

1.1 Conociendo MybatisPlus por primera vez

  • MyBatis-Plus (se abre en ventana nueva) (MP para abreviar) es una herramienta de mejora para MyBatis (se abre en ventana nueva) Sobre la base de MyBatis, solo se realizan mejoras sin cambios, y nació para simplificar el desarrollo y mejorar la eficiencia.

  • ¿Qué hay de la eficiencia de desarrollo del marco Mybatis? Siempre que necesitemos escribir un requisito de SQL, debemos realizar los siguientes pasos
  1. La interfaz de Mapper proporciona un método abstracto
  2. El archivo de configuración de mapeo correspondiente a la interfaz de Mapper proporciona etiquetas correspondientes y sentencias SQL
  3. Confíe en el objeto de instancia de Mapper en Service
  4. Llame al método en la instancia de Mapper
  5. Depende del objeto de instancia de servicio en el controlador
  6. Llame al método en la instancia de servicio.
    A través de los hallazgos anteriores, para un requisito de SQL, ya sea una sola tabla o varias tablas, debemos completar los pasos anteriores para realizar el desarrollo de los requisitos de SQL.

  • Sin embargo, en el desarrollo, algunas operaciones son de lógica común, que se pueden simplificar, por ejemplo:
    1. Para dao, ¿puede el marco proporcionarnos un buen método abstracto Mapper de una sola tabla y la implementación de SQL correspondiente, sin la necesidad de que los programadores implementen estos?
    2. Para los servicios, existe un marco que puede ayudarnos directamente a proporcionar algunos métodos abstractos de servicios y las implementaciones correspondientes, sin necesidad de que los programadores implementen estos.
    3. Algunas otras operaciones requeridas en el desarrollo empresarial
  • De hecho, el marco central no ha cambiado, sigue siendo Mybatis, pero MybatisPlus encapsula y desarrolla Mybatis para que sea más útil y fácil de usar.

1.2 Características de MybatisPlus

  • Sin intrusión: solo se realizan mejoras sin cambios, y la introducción de la misma no afectará a los proyectos existentes
  • Baja pérdida: el CURD básico se inyectará automáticamente cuando se inicie, el rendimiento es básicamente sin pérdidas y la operación orientada a objetos se realiza directamente
  • Potentes operaciones CRUD: asignador general integrado y servicio general, la mayoría de las operaciones CRUD de una sola tabla se pueden realizar con solo una pequeña cantidad de configuración, y hay un poderoso constructor condicional
  • Admite llamada de formulario Lambda: a través de expresiones Lambda, es conveniente escribir varias condiciones de consulta, sin necesidad de preocuparse por errores tipográficos en el campo
  • Admite la generación automática de claves principales: admite hasta 4 estrategias de claves principales (incluido un generador de ID único distribuido - Secuencia), que se puede configurar libremente para resolver perfectamente el problema de la clave principal
  • Admite el modo ActiveRecord: admite la llamada de formulario ActiveRecord, la clase de entidad solo necesita heredar la clase Model para realizar potentes operaciones CRUD
  • Admite operaciones generales globales personalizadas: admite inyección de método general global (escribir una vez, usar en cualquier lugar)
  • Generador de código incorporado: use el código o el complemento Maven para generar rápidamente códigos de capa de mapeador, modelo, servicio y controlador, y soporte motores de plantillas.
  • 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, escribir paginación es equivalente a una consulta de lista ordinaria.
  • El complemento de paginación admite múltiples bases de datos: admite MySQL, MariaDB y otras bases de datos
  • Complemento de análisis de rendimiento incorporado: puede generar declaraciones SQL y su tiempo de ejecución. Se recomienda habilitar esta función durante el desarrollo y las pruebas, que pueden detectar rápidamente las consultas lentas.
  • Complemento de intercepción global incorporado: proporciona análisis inteligente y bloqueo de operaciones de eliminación y actualización en toda la tabla, y también puede personalizar las reglas de intercepción para evitar operaciones incorrectas

1.3 Modelo de arquitectura de MybatisPlus

inserte la descripción de la imagen aquí

Caso de inicio

2.1 Preparar el entorno de desarrollo relevante

  • IDEA
  • Cartero
  • Navicat/Sqlyog
  • MySQL 5.+
  • JDK 1.8

2.2 Construir proyecto springboot

inserte la descripción de la imagen aquí

2.3 Crear una base de datos

  • crear base de datosmybatisplus
  • Crear declaración de tabla
DROP TABLE IF EXISTS user;
CREATE TABLE user(
    id BIGINT(20) NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (id));
  • Agregar datos de la tabla
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

2.4 Introducción de dependencias relacionadas

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.16</version>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.5 Crear clases de entidad

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    
    
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

2.6 Integrar MybatisPlus

  1. Escribir la interfaz de Mapper
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.powernode.domain.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {
    
    
}
  1. Interfaz de servicio de escritura
package com.powernode.service;

import com.powernode.domain.User;

import java.util.List;

public interface UserService extends IService<User> {
    
    
    List<User> selectList();
}
  1. Escribir ServiceImpl
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
    
    
    @Autowired
    UserMapper userMapper;


    @Override
    public List<User> selectList() {
    
    
        return userMapper.selectList(null);
    }
}
  1. Controlador de escritura
import com.powernode.domain.User;
import com.powernode.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {
    
    
    @Autowired
    UserService userService;

    @RequestMapping("/selectList")
    public String selectList() {
    
    
        List<User> all;
        all = userService.selectList();
        return all.toString();
    }
}
  1. Escribir un archivo de configuración
spring:
  datasource:
    password: xxx
    username: xxx
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false

2.7 Pruebas unitarias

  • Escrito mediante pruebas unitarias
@SpringBootTest
class Mp02ApplicationTests {
    
    

    @Autowired
    private UserMapper userMapper;

    @Test
    void selectList() {
    
    
        List<User> userList = userMapper.selectList(null);
        System.out.println(userList);
    }
}

2.8 optimización de registro de springboot

  1. Quitar el logo de mybatisplus
mybatis-plus:
  global-config:
    banner: false
  1. Eliminar el logotipo de springboot
spring:
    main:
     banner-mode: off
  1. Registro de ejecución de MybatisPlus
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

Supongo que te gusta

Origin blog.csdn.net/yang2330648064/article/details/131939525
Recomendado
Clasificación