cgb2007-jingtao day03

1. MybatisPlus

1.1MPの紹介

MyBatis-Plus(略してMP)は、MyBatisの拡張ツールであり、MyBatisに基づいて拡張するだけで変更はありません。開発を簡素化し、効率を向上させるために生まれました。

1.2機能

侵入なし:変更を加えずに拡張を行うだけです。導入しても既存のプロジェクトに影響はなく、シルクのように滑らかです。
小さな損失:基本的なCURDは起動時に自動的に注入され、パフォーマンスは基本的に損失なし、直接オブジェクト指向の操作
強力なCRUD操作:組み込みの一般的なマッパーと一般サービスでは、単一のテーブルのほとんどのCRUD操作を実現できる構成はごくわずかであり、さまざまな使用ニーズを満たすことができるより強力な条件コンストラクターです。
ラムダフォーム呼び出しのサポート:ラムダ式を使用してさまざまなタイプを記述すると便利です。間違ったフィールドを書き込むことを心配する必要はもうありません。
プライマリキーの自動生成をサポート:最大4つのプライマリキー戦略(分散一意IDジェネレータ-シーケンスを含む)をサポートし、自由に構成でき、プライマリキーの問題を完全に解決します
。ActiveRecordモードをサポート:ActiveRecordフォーム呼び出しをサポート、エンティティクラスは、強力なCRUD操作を実行するためにModelクラスを継承するだけで済みます。
カスタムグローバル一般操作のサポート:グローバル一般メソッドインジェクションのサポート(1回の書き込み、任意の場所での使用)
組み込みコードジェネレーター:コードまたはMavenプラグインを使用してマッパーとモデルをすばやく生成、サービス、コントローラーレイヤーコード、サポートテンプレートエンジン、その他のカスタム構成が
組み込みのページングプラグインの使用を待っています:MyBatisの物理ページングに基づいて、開発者は特定の操作を気にする必要がありません。プラグインを構成した後、ページングを作成することは通常のリストクエリと同等です。
ページングプラグインは、さまざまなデータベースをサポートします。MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer、およびその他のデータベース
組み込みパフォーマンス分析プラグインをサポートします。Sqlステートメントとその実行時間を出力できます。開発およびテスト中にこの機能を有効にすることをお勧めします。 、遅いクエリをすばやく発見できます
組み込みのグローバルインターセプトプラグイン:完全なテーブルの削除と更新操作のインテリジェントな分析とブロックを提供し、インターセプトルールをカスタマイズして誤操作を防ぐこともできます

1.3ORMの考え

1.3.1ビジネスシナリオ

30年間開発を続けているプログラマーは、ビジネスに非常に熟練していますが、ビジネスを完了するには、特に単純なSQLステートメントを作成する必要もあります。
要件:開発効率を効果的に向上させることができますか?

1.3.2ORMの概要

オブジェクトリレーショナルマッピング(英語:オブジェクトリレーショナルマッピング、略してORM、またはO / RM、またはO / Rマッピング)は、オブジェクト指向のプログラミング言語でさまざまなタイプのシステム間のデータ変換を実装するために使用されるプログラミング手法です実際には、プログラミング言語で使用できる「仮想オブジェクトデータベース」を実際に作成します。多くの無料および有料のORM製品があり、一部のプログラマーは独自のORMツールを作成することを好みます。

知識の予見:
Sqlステートメントプロセス指向language.sql:select * from user ResultSet result set object ~~~~ユーザーオブジェクトは手動で結果をカプセル化する必要があり、開発効率は低いです。

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

1.4MybatisPlusの動作原理の説明

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

1.5MP固有の実装

1.5.1jarパッケージのインポート

注:MybatisplusパッケージにはすでにMybatis情報が含まれているため、元のパッケージを削除する必要があります。

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

1.5.2POJOオブジェクトの編集

ここに写真の説明を挿入

1.5.3インターフェイスの継承を実装する

ここに写真の説明を挿入

1.5.4YML構成ファイルの編集

ここに写真の説明を挿入

1.5.5はじめにケース

クエリにMPメカニズムを使用する
ここに写真の説明を挿入

1.5.6Sqlステートメントの印刷

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

おすすめ

転載: blog.csdn.net/qq_16804847/article/details/109378783