Premiers pas avec mybatisPlus


insérez la description de l'image ici

Premier aperçu

1.1 Découvrir MybatisPlus pour la première fois

  • MyBatis-Plus (ouvre une nouvelle fenêtre) (MP en abrégé) est un outil d'amélioration de MyBatis (ouvre une nouvelle fenêtre) Sur la base de MyBatis, seules des améliorations sont apportées sans changement, et il est né pour simplifier le développement et améliorer l'efficacité.

  • Qu'en est-il de l'efficacité du développement à partir du framework Mybatis ? Chaque fois que nous devons écrire une exigence SQL, nous devons suivre les étapes suivantes
  1. L'interface Mapper fournit une méthode abstraite
  2. Le fichier de configuration de mappage correspondant à l'interface Mapper fournit les étiquettes et les instructions SQL correspondantes
  3. S'appuyer sur l'objet d'instance Mapper dans Service
  4. Appelez la méthode dans l'instance Mapper
  5. Dépend de l'objet d'instance de service dans le contrôleur
  6. Appelez la méthode dans l'instance de service
    Grâce aux résultats ci-dessus, pour une exigence SQL, qu'il s'agisse d'une table unique ou de plusieurs tables, nous devons suivre les étapes ci-dessus pour réaliser le développement des exigences SQL

  • Cependant, en développement, certaines opérations sont de logique commune, qui peuvent être simplifiées, par exemple :
    1. Pour dao, le framework peut-il nous fournir une bonne méthode abstraite Mapper à table unique et l'implémentation SQL correspondante, sans que les programmeurs aient besoin de les implémenter
    2. Pour les services, il existe un cadre qui peut directement nous aider à fournir des méthodes abstraites de services et les implémentations correspondantes, sans que les programmeurs aient besoin de les implémenter.
    3. Quelques autres opérations requises dans le développement d'entreprise
  • En fait, le framework de base n'a pas changé, c'est toujours Mybatis, mais MybatisPlus encapsule et fait évoluer Mybatis pour le rendre plus utile et plus facile à utiliser.

1.2 Fonctionnalités de MybatisPlus

  • Pas d'intrusion : seules les améliorations sont apportées sans modification, et l'introduction de celle-ci n'affectera pas les projets existants
  • Faible perte: le CURD de base sera automatiquement injecté lors de son démarrage, les performances sont pratiquement sans perte et l'opération orientée objet est directement effectuée
  • Opérations CRUD puissantes : mappeur général intégré et service général, la plupart des opérations CRUD d'une seule table peuvent être réalisées avec seulement une petite quantité de configuration, et il existe un puissant constructeur conditionnel
  • Prise en charge de l'appel de formulaire Lambda : grâce aux expressions Lambda, il est pratique d'écrire diverses conditions de requête, pas besoin de s'inquiéter des fautes de frappe sur les champs
  • Prend en charge la génération automatique de clé primaire : prend en charge jusqu'à 4 stratégies de clé primaire (y compris un générateur d'ID unique distribué - Séquence), qui peuvent être librement configurées pour résoudre parfaitement le problème de clé primaire
  • Prise en charge du mode ActiveRecord : prise en charge de l'appel de formulaire ActiveRecord, la classe d'entité n'a besoin d'hériter que de la classe Model pour effectuer de puissantes opérations CRUD
  • Prise en charge des opérations générales globales personnalisées : prise en charge de l'injection de méthode générale globale (écrire une fois, utiliser n'importe où)
  • Générateur de code intégré : utilisez le code ou le plug-in Maven pour générer rapidement des codes de couches Mapper, Model, Service et Controller, et prendre en charge les moteurs de modèles.
  • Plug-in de pagination intégré : basé sur la pagination physique MyBatis, les développeurs n'ont pas besoin de se soucier d'opérations spécifiques. Après avoir configuré le plug-in, écrire la pagination équivaut à une requête de liste ordinaire
  • Le plug-in de pagination prend en charge plusieurs bases de données : prend en charge MySQL, MariaDB et d'autres bases de données
  • Plug-in d'analyse des performances intégré : il peut générer des instructions SQL et leur temps d'exécution. Il est recommandé d'activer cette fonction pendant le développement et les tests, ce qui permet de détecter rapidement les requêtes lentes.
  • Plug-in d'interception global intégré : Fournit une analyse intelligente et un blocage des opérations de suppression et de mise à jour sur l'ensemble de la table, et peut également personnaliser les règles d'interception pour éviter les mauvaises opérations

1.3 Modèle d'architecture de MybatisPlus

insérez la description de l'image ici

Cas de démarrage

2.1 Préparer l'environnement de développement pertinent

  • IDÉE
  • Facteur
  • Navicat/Sqlyog
  • MySQL 5.+
  • JDK 1.8

2.2 Construire le projet Springboot

insérez la description de l'image ici

2.3 Créer une base de données

  • créer une base de donnéesmybatisplus
  • Créer une instruction de table
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));
  • Ajouter des données de table
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 Présentation des dépendances associées

<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 Créer une classe d'entité

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 Intégrer MybatisPlus

  1. Ecrire l'interface 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. Interface de service d'écriture
package com.powernode.service;

import com.powernode.domain.User;

import java.util.List;

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


    @Override
    public List<User> selectList() {
    
    
        return userMapper.selectList(null);
    }
}
  1. Contrôleur d'écriture
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. Écrire un fichier de configuration
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 Tests unitaires

  • Écrit au moyen de tests unitaires
@SpringBootTest
class Mp02ApplicationTests {
    
    

    @Autowired
    private UserMapper userMapper;

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

2.8 optimisation du journal springboot

  1. Supprimer le logo de mybatisplus
mybatis-plus:
  global-config:
    banner: false
  1. Supprimer le logo springboot
spring:
    main:
     banner-mode: off
  1. Journal d'exécution de MybatisPlus
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

Je suppose que tu aimes

Origine blog.csdn.net/yang2330648064/article/details/131939525
conseillé
Classement