cgb2007-jingtao day03

1. MybatisPlus

1.1 Présentation du MP

MyBatis-Plus (MP en abrégé) est un outil d'amélioration de MyBatis. Sur la base de MyBatis, il ne fait qu'améliorer et ne change pas. Il est né pour simplifier le développement et améliorer l'efficacité.

1.2 Caractéristiques

Aucune intrusion: n'apportez que des améliorations sans apporter de modifications. Son introduction n'affectera pas le projet existant et est aussi fluide que de la soie.
Faible perte: le CURD de base sera automatiquement injecté au démarrage, sans perte de performances, fonctionnement direct orienté objet et
fonctionnement CRUD puissant : Mappeur général et service général intégrés, seule une petite quantité de configuration peut réaliser la plupart des opérations CRUD d'une seule table et un constructeur de conditions plus puissant, qui peut répondre à divers besoins d'utilisation.
Prise en charge de l'invocation de formulaire Lambda: il est pratique d'écrire différents types via des expressions Lambda Plus besoin de vous soucier d'écrire de mauvais champs.
Prise en charge de la génération automatique de clé primaire: prend en charge jusqu'à 4 stratégies de clé primaire (y compris le générateur d'ID unique distribué-Séquence), librement configurable et résout parfaitement les problèmes de clé primaire.
Prise en charge du mode ActiveRecord: prise en charge des appels de formulaire ActiveRecord , La classe d'entité n'a besoin que d'hériter de la classe Model pour effectuer des opérations CRUD puissantes.
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 Mapper et Model , Un service, un code de couche de contrôleur, un moteur de modèle de prise en charge et d'autres configurations personnalisées vous attendent pour utiliser le
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. Une fois le plug-in configuré, l'écriture de pagination équivaut à une requête de liste ordinaire
Le plug-in de pagination prend en charge une variété de bases de données: prend en charge MySQL, MariaDB, Oracle, DB2, H2, HSQL, SQLite, Postgre, SQLServer et d'autres
plug-ins d'analyse des performances intégrés aux bases de données : 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 , Peut découvrir rapidement les requêtes lentes
Plug-in d'interception globale intégré: fournit une analyse et un blocage intelligents des opérations de suppression et de mise à jour de table complète, et peut également personnaliser les règles d'interception pour éviter toute mauvaise opération

1.3 Pensée ORM

1.3.1 Scénario d'entreprise

Programmeur qui développe depuis 30 ans, il est assez compétent en affaires, mais pour mener à bien son activité, il doit aussi écrire des instructions SQL particulièrement simples
Exigences: L'efficacité du développement peut-elle être efficacement améliorée?

1.3.2 Introduction à ORM

Le mappage objet-relationnel (anglais: Object Relational Mapping, ORM pour abrégé, ou O / RM ou O / R mapping) est une technique de programmation utilisée pour implémenter la conversion de données entre différents types de systèmes dans des langages de programmation orientés objet . En effet, il crée en fait une "base de données d'objets virtuels" qui peut être utilisée dans les langages de programmation. Il existe de nombreux produits ORM gratuits et payants, et certains programmeurs préfèrent créer leurs propres outils ORM.

Préfiguration des connaissances: l'
instruction SQL est un langage orienté processus.sql: select * from user ResultSet result set object ~~~~ Les objets utilisateur doivent encapsuler manuellement les résultats, et l'efficacité du développement est faible.

ORM方式:  以对象的方法操作数据库, **可以实现结果集与对象的自动的映射**  不需要自己手写.

1.4 Description du principe de fonctionnement de MybatisPlus

1. 对象与哪张表要完成映射     		可以自定义注解进行标识.
2. 对象的属性与表中的字段如何一一对应.		起名时应该写成一样的. 利用特定的注解指定.
3. 工具方法如何简化    MP动态的生成CURD操作的接口,只要其他的Mapper继承接口即可
4. 对象如何转化为SQL语句		    利用对象中的属性及属性的值动态**拼接sql**,之后交给Mybatis(jdbc)去执行
eg.userMapper.insert(user对象)
eg:deptMapper.insert(dept对象)
sql: insert into 表名(字段信息....) values(属性值....)

1.5 Implémentation spécifique MP

1.5.1 Importer un package jar

Remarque: le package Mybatisplus contient déjà des informations Mybatis, le package d'origine doit donc être supprimé.

	<!--spring整合mybatis-plus -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.2.0</version>
		</dependency>

1.5.2 Modifier l'objet POJO

Insérez la description de l'image ici

1.5.3 Implémenter l'héritage d'interface

Insérez la description de l'image ici

1.5.4 Modifier le fichier de configuration YML

Insérez la description de l'image ici

1.5.5 Cas de démarrage

Utiliser le mécanisme MP pour la requête
Insérez la description de l'image ici

1.5.6 Impression des instructions SQL

server:
  port: 8090
  servlet:
    context-path: /
spring:
  datasource:
    #驱动版本问题 高版本需要添加cj关键字  一般可以省略
    #driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    password: root

mybatis-plus:
  #别名包定义 Mapper的resultType中只需要写类名 之后自动拼接即可
  type-aliases-package: com.jt.pojo
  #加载指定的xml映射文件
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #开启驼峰映射
  configuration:
    map-underscore-to-camel-case: true


# 实现sql打印
logging:
  level:
    com.jt.mapper: debug

Je suppose que tu aimes

Origine blog.csdn.net/qq_16804847/article/details/109378783
conseillé
Classement