Présentation de MyBatis-Plus et mise en route
1. Introduction
Qu'est-ce que c'est? MyBatis est destiné à simplifier les opérations JDBC! Simplifiez MyBatis!
2. Caractéristiques
- Aucune intrusion : seulement améliorer et ne pas changer, son introduction n'affectera pas le projet existant, il est aussi lisse que de la soie
- Faible perte : le CURD de base sera automatiquement injecté au démarrage, les performances sont essentiellement sans perte, fonctionnement direct orienté objet
- Opérations CRUD puissantes : mappeur général intégré, service général, seule une petite quantité de configuration peut réaliser la plupart des
opérations CRUD d'une seule table et un générateur de conditions plus puissant pour répondre à divers besoins d'utilisation - Prise en charge de l'appel de formulaire Lambda : grâce aux expressions Lambda, vous pouvez facilement écrire toutes sortes de conditions de requête, pas besoin de vous soucier d'écrire de mauvais 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 configurées librement, ce qui résout parfaitement le problème de clé primaire
- Prise en charge du mode ActiveRecord : prise en charge de l'appel de formulaire ActiveRecord, les classes d'entité n'ont besoin que d'hériter 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 (écriture unique, utilisation n'importe où)
- Générateur de code intégré : utilisez le code ou le plug-in Maven pour générer rapidement le mappeur, le modèle, le service, le
code de couche contrôleur , le moteur de modèle de prise en charge et d'autres configurations personnalisées à utiliser - 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, l'écriture de pagination équivaut à une requête de liste ordinaire
- Le plugin de pagination prend en charge plusieurs bases de données : prend en charge MySQL, MariaDB, Oracle, DB2, H2, HSQL, SQLite, Postgre, SQLServer et d'autres bases de données
- Plug-in d'analyse des performances intégré : l'instruction SQL et son temps d'exécution peuvent être générés. Il est recommandé d'activer cette fonction pendant le développement et les tests pour détecter rapidement les requêtes lentes
- Plug-in d'interception globale intégré : fournit une analyse intelligente et le blocage des opérations de suppression et de mise à jour de l'ensemble de la table, et peut également personnaliser les règles d'interception pour éviter les mauvaises opérations
Trois, démarrage rapide
Adresse: https://mp.baomidou.com/guide/quick-start.html Projet d'initialisation
Étapes:
1. Créez la base de données mybatis_plus
2. Créez la table utilisateur
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)
);
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]');
-- 真实开发中,version(乐观锁)、deleted(逻辑删除)、gmt_create、gmt_modified
3. Écrivez le projet et initialisez le projet! Utilisez SpringBoot pour initialiser!
4. Importer les dépendances
SpringBoot :
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- mybatis-plus --> <!-- mybatis-plus 是自己开发,并非官方的! -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
PrintempsMVC
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.4.2</version>
</dependency>
注意
: Nous utilisons mybatis-plus pour nous faire économiser beaucoup de code. Après avoir introduit MyBatis-Plus, veuillez ne pas introduire à nouveau MyBatis et MyBatis-Spring pour éviter les problèmes causés par les différences de version.
5. Connectez-vous à la base de données! Cette étape est la même que mybatis!
# mysql 5 驱动不同 com.mysql.jdbc.Driver
# mysql 8 驱动不同com.mysql.cj.jdbc.Driver、需要增加时区的配置 serverTimezone=GMT%2B8
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatisplus?useSSl=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password: "081020"
driver-class-name: com.mysql.cj.jdbc.Driver
Méthode traditionnelle domain-dao (se connecter à mybatis, configurer le fichier mapper.xml) -service-controller
6. Après avoir utilisé mybatis-plus
- domaine
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
- interface du mappeur
// 在对应的Mapper上面继承基本的类 BaseMapper
@Repository // 代表持久层
public interface Usermapper extends BaseMapper<User> {
// 所有的CRUD操作都已经编写完成了
// 你不需要像以前的配置一大堆文件了
}
注意
: Nous devons analyser toutes les interfaces sous notre package mapper sur la classe de démarrage principale @MapperScan ("com.latte.mapper")
- Test dans la classe de test
@Autowired
// 继承了BaseMapper,所有的方法都来自己父类
// 我们也可以编写自己的扩展方法!
private Usermapper usermapper;
@Test
void contextLoads() {
// 参数是一个 Wrapper ,条件构造器,这里我们先不用 null
// 查询全部用户
List<User> users = usermapper.selectList(null);
for (User user : users) {
System.out.println(user);
}
}
- résultat
1. Qui nous a aidés à écrire SQL? MyBatis-Plus a été écrit
2. D'où vient la méthode? MyBatis-Plus a été écrit