mybatis-plus-generator について
mybatis-plus-generator は、MyBatis-Plus のコード生成を明示的に求める開発者向けのスキルです。設定やアーキテクチャを段階的に確認し、データベースのテーブル情報から Java または Kotlin のコードを生成します。
主な機能
- 01Entity、Mapper、Service などの生成
- 02MVC、DDD、レイヤード、クリーンアーキテクチャに対応
- 03Java と Kotlin に対応
- 04データベース、パッケージ、生成方針の設定収集
- 05進捗表示と統計の出力
活用シーン
- 01テーブル定義から MyBatis-Plus コードを生成
- 02選択した構成に沿ってコントローラーやデータアクセス層を作成
- 03機能要件からカスタムメソッドを整理
- 04Java または Kotlin プロジェクトの生成設定をまとめる
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ partme-ai/ full-stack-skills --skill mybatis-plus-generatorインストール後、Claude Code で/mybatis-plus-generatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSE.txtREADME.mdexamples/architecture-directory-mapping.mdddd-architecture-example.mdfull-workflow-example.mdmvc-architecture-example.mdswagger-annotations-example.mdreference/architecture-directory-mapping-guide.mdarchitecture-directory-quick-reference.mdcode-generation-standards.mdmybatis-plus-generator-guide.mdprogress-and-statistics-formats.mdswagger-annotations-guide.mdtemplate-variables.mdtemplates/aggregate-root.java.ftlaggregate-root.kt.ftlapplication-service.java.ftlapplication-service.kt.ftlassembler.java.ftlassembler.kt.ftlbo.java.ftlbo.kt.ftlcontroller.java.ftlcontroller.kt.ftldomain-event.java.ftldomain-event.kt.ftldomain-service.java.ftldomain-service.kt.ftldto.java.ftldto.kt.ftl詳細
このスキルを使用するタイミング
重要:このスキルは、ユーザーが MyBatis-Plus または mybatis-plus-generator に明示的に言及した場合にのみ起動してください。
ユーザーが以下に言及した場合は、必ずこのスキルを使用してください:
- MyBatis-Plus のコード生成(「MyBatis-Plus」または「mybatis-plus」に明示的に言及している)
- データベーステーブルからの MyBatis-Plus コード生成
- MyBatis-Plus ジェネレーターまたは mybatis-plus-generator
- MyBatis-Plus の Entity、Mapper、Service、Controller コードの作成
- MyBatis-Plus コードの生成(「MyBatis-Plus」に明示的に言及している)
- MyBatis-Plus コードジェネレーター
- MyBatis-Plus を使用したコード生成
以下のフレーズがトリガーになります:
- 「MyBatis-Plus コードの生成」-「MyBatis-Plus」を含める必要があります
- 「MyBatis-Plus コード生成」-「MyBatis-Plus」を含める必要があります
- 「mybatis-plus-generator」(ジェネレーターに明示的に言及している)
- 「MyBatis-Plus を使ってテーブル構造からコードを生成する」
- 「MyBatis-Plus で Entity、Service、Controller を生成する」
- 「MyBatis-Plus コードジェネレーター」
以下の場合は、このスキルを起動しないでください:
- MyBatis-Plus に言及していない一般的なコード生成
- JPA/Hibernate のコード生成
- その他の ORM フレームワーク(TypeORM、Sequelize など)
- MyBatis-Plus の文脈を伴わない一般的な CRUD 操作
- 「テーブル構造からコードを生成する」だけで、「MyBatis-Plus」が含まれていない場合(対象が広すぎます)
- 「CRUD コードを生成する」だけで、「MyBatis-Plus」が含まれていない場合(対象が広すぎます)
- 「コードジェネレーター」だけで、「MyBatis-Plus」が含まれていない場合(対象が広すぎます)
サポート対象のアーキテクチャ:
- 従来型 MVC(Model-View-Controller)
- DDD(ドメイン駆動設計)
- レイヤードアーキテクチャ
- クリーンアーキテクチャ
サポート対象の言語:
- Java
- Kotlin
サポート対象のコンポーネントタイプ:
- Entity(エンティティクラス)
- Mapper(データアクセスインターフェース)
- Service(サービスインターフェース)
- ServiceImpl(サービス実装クラス)
- Controller(コントローラー)
- DTO(データ転送オブジェクト)
- VO(値オブジェクト/ビューオブジェクト)
- BO(ビジネスオブジェクト)
- Model(データモデル)
このスキルの使用方法
重要:このスキルは、ユーザーが MyBatis-Plus または mybatis-plus-generator に明示的に言及した場合にのみ起動してください。MyBatis-Plus の文脈を伴わない一般的なコード生成の依頼では起動しないでください。
ワークフローの概要
このスキルでは、体系的な 8 ステップのワークフローに従います。
- 設定の収集 - データベース情報、グローバル設定、パッケージ設定、ストラテジー設定を収集します
- アーキテクチャの決定 - アーキテクチャの種類(MVC、DDD など)についてユーザーに尋ね、生成するオブジェクトを決定します
- 要件の収集 - 機能要件についてユーザーに尋ね、分析して生成するメソッドを決定します
- 言語の決定 - プログラミング言語(Java または Kotlin)についてユーザーに尋ねます
- Todo リストの作成 - テーブル名、オブジェクトの種類、メソッド名を含む詳細な Todo リストを作成します
- コードの生成 - テーブル構造と要件に基づき、インテリジェントなコメントを付けたコードファイルを生成します
- 進捗の更新 - コード生成中にリアルタイムで進捗を更新します
- 統計情報 - 生成の完了後に統計情報を出力します
手順
ステップ 1:設定を収集する
重要:コードを生成する前に、必ず以下の設定を収集してください。
-
データベース情報:
- データベースの種類(MySQL、PostgreSQL、Oracle など)
- データベース接続 URL(または、ユーザーにテーブル構造の提示を依頼します)
- データベース名
- テーブル名(1 つまたは複数)
- ユーザーがデータベース接続情報を提示できない場合は、テーブル構造(CREATE TABLE 文またはテーブルスキーマ)の提示を依頼します
-
グローバル設定:
- 作成者名
- 出力ディレクトリ(デフォルト:
src/main/java) - ファイルの上書き方針(上書き、スキップ、確認)
- Lombok を有効にする(はい/いいえ)
- API ドキュメントを有効にする(はい/いいえ)
- API ドキュメントの種類(有効にする場合):
- Swagger 2(
io.swagger.annotations.*を使用) - OpenAPI 3(
io.swagger.v3.oas.annotations.*を使用)
- Swagger 2(
- 検証アノテーションを有効にする(はい/いいえ)
-
パッケージ設定:
- 親パッケージ名(例:
com.example.app) - Entity パッケージ(デフォルト:
entity) - Mapper パッケージ(デフォルト:
mapper) - Service パッケージ(デフォルト:
service) - ServiceImpl パッケージ(デフォルト:
service.impl) - Controller パッケージ(デフォルト:
controller) - DTO パッケージ(デフォルト:
dto) - VO パッケージ(デフォルト:
vo) - BO パッケージ(デフォルト:
bo)
- 親パッケージ名(例:
-
方針設定:
- 命名方針(camelCase、PascalCase など)
- テーブルプレフィックスの削除(はい/いいえ、プレフィックス名)
- フィールドの命名方針
- 主キーの方針(AUTO、UUID など)
重要:API ドキュメントの種類を選択する場合:
ユーザーが API ドキュメントを有効にした場合、必ず次の質問をしてください。
请选择 API 文档类型:
- [ ] Swagger 2
- 使用注解:@ApiModel, @ApiModelProperty, @Api, @ApiOperation
- 依赖:springfox-swagger2, springfox-swagger-ui
- 适用于:Spring Boot 2.x 项目
- [ ] OpenAPI 3
- 使用注解:@Schema, @Tag, @Operation, @Parameter
- 依赖:springdoc-openapi-ui
- 适用于:Spring Boot 2.2+ 和 Spring Boot 3.x 项目
続行する前に、ユーザーの確認を待ってください。
出力: API ドキュメントの種類を含む、収集したすべての情報の設定概要。
ステップ 2:アーキテクチャを決定する
重要:生成するオブジェクトを決定するため、必ずユーザーにアーキテクチャの種類を確認してください。
アーキテクチャの選択肢を提示します。
请选择项目架构类型:
- [ ] 传统 MVC (Model-View-Controller)
- 生成:Entity, Mapper, Service, ServiceImpl, Controller
- [ ] DDD (领域驱动设计)
- 生成:Entity, Mapper, Service, ServiceImpl, Controller, DTO, VO, BO
- [ ] 分层架构 (Layered Architecture)
- 生成:Entity, Mapper, Service, ServiceImpl, Controller
- [ ] 整洁架构 (Clean Architecture)
- 生成:Entity, Repository, UseCase, Controller, DTO
- [ ] 自定义架构
- 请指定需要生成的对象类型
続行する前に、ユーザーの確認を待ってください。
重要:アーキテクチャに基づくディレクトリの割り当て
アーキテクチャの種類を決定した後、生成する各オブジェクトの正しい出力ディレクトリを必ず特定してください。
重要な手順:
- ユーザーにベースパッケージのパスを確認します(例:
com.example.order) - アーキテクチャのディレクトリ割り当てを使用して、正しいパスを特定します。
- クイックリファレンス:参照表については
reference/architecture-directory-quick-reference.mdを参照してください - 詳細ガイド:割り当てルールの全容については
reference/architecture-directory-mapping-guide.mdを参照してください
- クイックリファレンス:参照表については
- ディレクトリが存在することを確認し、必要に応じて作成します
- 正しい場所にファイルを生成します
一般的なパスの例:
ベースパッケージが com.example.order の user テーブルの場合:
- MVC:Entity →
com/example/order/entity/User.java、Controller →com/example/order/controller/UserController.java - DDD:Entity →
com/example/order/domain/model/aggregate/user/User.java、Controller →com/example/order/interfaces/web/controller/UserController.java - Hexagonal:Entity →
com/example/order/domain/model/entity/User.java、Controller →com/example/order/infrastructure/adapter/inbound/web/controller/UserController.java - Clean:Entity →
com/example/order/domain/entity/User.java、Controller →com/example/order/infrastructure/web/controller/UserController.java - COLA:Entity →
com/example/order/domain/model/entity/User.java、Controller →com/example/order/adapter/web/controller/UserController.java
重要: プロジェクトの構造が不明確な場合は、必ずユーザーに正確なディレクトリ構造を確認してください。次のように質問します:「プロジェクトのディレクトリ構造を確認してください。生成したコードを正しい場所に配置するためです。」
ステップ 3:要件を収集する
重要:生成する必要があるメソッドを把握するため、ユーザーに機能要件を確認してください。
ユーザーに次のように尋ねます。
请描述此次生成代码的功能需求:
例如:
- 用户管理:需要根据邮箱查询用户、根据用户名查询用户、用户登录验证
- 订单管理:需要订单统计、订单分页查询、订单状态更新
- 商品管理:需要商品搜索、商品分类查询、库存管理
请详细描述每个表需要哪些功能,我会根据需求自动分析需要生成的方法。
ユーザーが要件を提示した後:
-
要件を分析して、次の内容を特定します。
- 標準的な CRUD メソッド(create、read、update、delete)
- カスタムクエリメソッド(findByEmail、findByUsername など)
- カスタムビジネスメソッド(統計、集計など)
- カスタム更新メソッド(updateStatus、updatePassword など)
-
各テーブルについて、次の内容を特定します。
- 必要な標準メソッド
- 要件に基づいて必要なカスタムメソッド
- メソッドのパラメーターと戻り値の型
- ビジネスロジックのヒント(メソッドのスケルトン用)
出力:次の内容を示す要件分析:
- 各テーブルの標準メソッド
- 各テーブルのカスタムメソッド
- メソッドシグネチャ(パラメーターと戻り値の型)
ステップ 4:言語を決定する
重要:ユーザーにプログラミング言語を確認してください。
请选择编程语言:
- [ ] Java
- [ ] Kotlin
続行する前に、ユーザーの確認を待ってください。
注:templates/ ディレクトリのテンプレートは、Java と Kotlin の両方に対応しています。ユーザーの選択に応じて適切なテンプレートを使用してください。
ステップ 5:Todo リストを作成する
重要:すべての情報を収集した後、詳細な Todo リストを作成してください。
各テーブルについて、次のような構成の Todo リストを作成します。
## Todo List: MyBatis-Plus Code Generation
### Table: user
#### Entity 层
- [ ] User.java - 实体类
- [ ] 类注释
- [ ] 字段定义(id, username, email, password, status, createTime, updateTime)
- [ ] 字段注释
#### Mapper 层
- [ ] UserMapper.java - 数据访问接口
- [ ] 类注释
- [ ] 基础 CRUD 方法(继承 BaseMapper)
#### Service 层
- [ ] UserService.java - 服务接口
- [ ] 类注释
- [ ] saveUser() - 保存用户
- [ ] findById() - 根据ID查询
- [ ] updateUser() - 更新用户
- [ ] deleteById() - 删除用户
- [ ] findByEmail() - 根据邮箱查询(自定义方法)
- [ ] findByUsername() - 根据用户名查询(自定义方法)
#### ServiceImpl 层
- [ ] UserServiceImpl.java - 服务实现类
- [ ] 类注释
- [ ] 实现所有 Service 接口方法
- [ ] 方法注释和实现骨架
#### Controller 层
- [ ] UserController.java - 控制器
- [ ] 类注释
- [ ] createUser() - 创建用户
- [ ] getUserById() - 查询用户
- [ ] updateUser() - 更新用户
- [ ] deleteUser() - 删除用户
- [ ] getUserByEmail() - 根据邮箱查询(自定义接口)
#### DTO 层(如果架构需要)
- [ ] UserCreateDTO.java - 创建用户DTO
- [ ] UserUpdateDTO.java - 更新用户DTO
- [ ] UserQueryDTO.java - 查询用户DTO
#### VO 层(如果架构需要)
- [ ] UserVO.java - 用户视图对象
### Table: order
...
重要:
- テーブルごとに整理する
- 生成が必要なオブジェクトをすべて列挙する
- すべてのメソッド(標準+カスタム)を含める
- 進捗を追跡するためにチェックボックスを使用する
ステップ 6:コードを生成する
重要:テーブル構造と要件に基づいて、適切なコメントを含むコードファイルを生成してください。
生成順序:
- Entity - 最初(他のすべてのオブジェクトの基盤)
- Mapper - 2番目(データアクセス層)
- Service - 3番目(ビジネスインターフェース)
- ServiceImpl - 4番目(ビジネス実装)
- Controller - 5番目(API 層)
- DTO/VO/BO - 6番目(アーキテクチャで必要な場合)
各オブジェクトについて:
- オブジェクトの種類と言語に基づいて、
templates/ディレクトリから適切なテンプレートを読み込む - テーブル構造を分析する:カラム、型、制約、主キー、外部キー、リレーションシップを確認する
- 適切なコメントを生成する:技術的な名前だけでなく、ビジネス上の文脈に基づいて記述する
- クラスコメント:目的を説明し、主なフィールドを列挙する
- メソッドコメント:ビジネスロジックを説明し、すべてのパラメーターと戻り値の型を含める
- フィールドコメント:カラム名だけでなく、ビジネス上の意味を説明する
- コードを生成する:テンプレート変数を置き換え、アノテーションを追加し、メソッドのスケルトンを生成する
- カスタムメソッドについて:シグネチャを生成し、ビジネスロジックのコメントと TODO のヒントを追加する
- 出力ディレクトリを決定する:アーキテクチャのディレクトリマッピングを使用する(ステップ 2 を参照)
- アーキテクチャとパッケージ設定に基づいて、ファイルを正しい場所に保存する
各オブジェクトの生成後:
- Todo リストを更新し、完了した項目に
[x]を付ける - ユーザーに進捗を表示する
- 次のオブジェクトに進む
コード生成規約:コメント、テンプレート、コード品質に関する詳細な要件は、reference/code-generation-standards.md を参照してください。
ステップ 7:進捗を更新する
重要:コード生成中にリアルタイムで進捗を更新してください。
次のタイミングで進捗を更新します。
- 各テーブルの処理を開始したとき
- 各オブジェクトを生成したとき
- 各メソッドを追加したとき
- 各テーブルの処理が完了したとき
進捗の形式:詳細な進捗更新の形式と例については、reference/progress-and-statistics-formats.md を参照してください。
ステップ 8:統計情報
重要:すべてのコード生成が完了した後、包括的な統計情報を出力してください。
統計情報の形式:次の内容を含む詳細な統計情報の形式については、reference/progress-and-statistics-formats.md を参照してください。
- 全体の統計情報(テーブル、オブジェクト、メソッド、ファイル、行数)
- テーブルごとの統計情報
- 種類ごとの統計情報
- ファイルの場所
- コード品質チェックリスト
コード生成の標準
重要:生成するコードには、テンプレートのプレースホルダーだけでなく、インテリジェントでコンテキストを考慮したコメントを含めてください。
主な要件:
- クラスコメント:ビジネスコンテキストに基づいて目的を説明し、テーブルとの対応関係を示し、主なフィールドを列挙する
- メソッドコメント:ビジネスロジックを説明し、すべてのパラメーターを型とともに記載し、戻り値を型とともに記載し、例外を説明する
- フィールドコメント:ビジネス上の意味を説明し、データ型と制約を記載する。カラム名だけにしない
詳細な標準:以下については、reference/code-generation-standards.md を参照してください。
- コメント形式の完全な要件
- テンプレートの使用ガイドライン
- テンプレート変数リファレンス
- Swagger アノテーションの選択
- カスタムメソッド生成の標準
- コード品質の要件
ベストプラクティス
- インテリジェントなコメント:テンプレートのプレースホルダーだけでなく、テーブル構造の分析とビジネス要件に基づいてコメントを生成する
- コンテキストの認識:テーブル間の関係とビジネスコンテキストを理解し、意味のあるコメントを生成する
- メソッド分析:ユーザー要件を分析し、必要なメソッドを判断する
- 進捗の追跡:常に todo リストを更新し、進捗を表示する
- コード品質:適切なアノテーションとバリデーションを備えた、本番環境で使用できるコードを生成する
- テンプレートの拡張:テンプレートをベースとして使用しつつ、インテリジェントな追加要素で拡張する
- 言語サポート:Java と Kotlin の両方を、適切なテンプレートでサポートする
リファレンスドキュメント
重要:詳細なガイダンスについては、以下のリファレンスドキュメントを使用してください。
アーキテクチャとディレクトリのマッピング
reference/architecture-directory-mapping-guide.md- すべてのアーキテクチャを対象とした完全なディレクトリマッピングガイド(重要)reference/architecture-directory-quick-reference.md- ディレクトリマッピングのクイック参照表
コード生成の標準
reference/code-generation-standards.md- コメントの詳細な標準、テンプレートの使用方法、コード品質の要件reference/template-variables.md- テンプレート変数の完全な一覧reference/swagger-annotations-guide.md- Swagger 2 と OpenAPI 3 のアノテーション比較
進捗と統計
reference/progress-and-statistics-formats.md- 進捗更新と統計出力の形式
MyBatis-Plus リファレンス
reference/mybatis-plus-generator-guide.md- MyBatis-Plus Generator の使用ガイド
例
完全な例については、examples/ ディレクトリを参照してください。
examples/mvc-architecture-example.md- MVC アーキテクチャの生成例examples/ddd-architecture-example.md- DDD アーキテクチャの生成例examples/full-workflow-example.md- ワークフロー全体の例examples/architecture-directory-mapping.md- さまざまなアーキテクチャのディレクトリマッピング例examples/swagger-annotations-example.md- Swagger 2 と OpenAPI 3 のアノテーション例
テンプレート
テンプレートはtemplates/ ディレクトリにあり、FreeMarker 構文(.ftl ファイル)を使用しています。MyBatis-Plus の公式テンプレートに厳密に準拠しています。
標準テンプレート(MVC アーキテクチャ)
Java テンプレート:
entity.java.ftl- エンティティクラスのテンプレートmapper.java.ftl- Mapper インターフェースのテンプレートservice.java.ftl- Service インターフェースのテンプレートserviceImpl.java.ftl- Service 実装のテンプレートcontroller.java.ftl- Controller のテンプレートdto.java.ftl- DTO のテンプレートvo.java.ftl- VO のテンプレートbo.java.ftl- BO のテンプレート
Kotlin テンプレート:
entity.kt.ftl- エンティティデータクラスのテンプレートmapper.kt.ftl- Mapper インターフェースのテンプレートservice.kt.ftl- Service インターフェースのテンプレートserviceImpl.kt.ftl- Service 実装のテンプレートcontroller.kt.ftl- Controller のテンプレートdto.kt.ftl- DTO のテンプレートvo.kt.ftl- VO のテンプレートbo.kt.ftl- BO のテンプレート
DDD アーキテクチャテンプレート
すべての DDD テンプレートは templates/ ルートディレクトリにあり、Java と Kotlin の両方に対応しています。
ドメイン層:
aggregate-root.java.ftl/aggregate-root.kt.ftl- 集約ルートのテンプレートrepository.java.ftl/repository.kt.ftl- リポジトリインターフェースのテンプレート(ドメイン層)domain-service.java.ftl/domain-service.kt.ftl- ドメインサービスのテンプレートvalue-object.java.ftl/value-object.kt.ftl- 値オブジェクトのテンプレートdomain-event.java.ftl/domain-event.kt.ftl- ドメインイベントのテンプレート
アプリケーション層:
application-service.java.ftl/application-service.kt.ftl- アプリケーションサービスのテンプレート
インターフェース層:
assembler.java.ftl/assembler.kt.ftl- DTO アセンブラーのテンプレート
テンプレートの機能:
- Swagger 2 および OpenAPI 3 のアノテーションに対応
- テーブル構造に基づくインテリジェントなコメント
- カスタムメソッドの生成に対応
- Kotlin 固有の機能(データクラス、null 安全性など)
- DDD 固有のパターン(集約ルート、値オブジェクト、ドメインイベント)
- テンプレートエンジン用の FreeMarker 構文
参考: MyBatis-Plus の公式テンプレートを参照してください:
キーワード
英語のキーワード: mybatis-plus, mybatis-plus-generator, mybatis-plus code generator, mybatis-plus code generation, generate mybatis-plus code, mybatis-plus entity generator, mybatis-plus mapper generator, mybatis-plus service generator, mybatis-plus controller generator, mybatis-plus crud generation, mybatis-plus from table, mybatis-plus code from database
中国語のキーワード(中国語キーワード): MyBatis-Plus, mybatis-plus-generator, MyBatis-Plus コード生成器, MyBatis-Plus コード生成, MyBatis-Plus コードの生成, MyBatis-Plus エンティティクラス生成, MyBatis-Plus Mapper 生成, MyBatis-Plus Service 生成, MyBatis-Plus Controller 生成, MyBatis-Plus CRUD 生成, MyBatis-Plus によるテーブルからのコード生成, MyBatis-Plus によるデータベースからコードへの変換, MyBatis-Plus によるテーブルから Java への変換, MyBatis-Plus を使用したコード生成
重要: 誤検出を避けるため、すべてのキーワードに「MyBatis-Plus」または「mybatis-plus」を含める必要があります。「コード生成器」や「テーブルからコードを生成」のような一般的な用語は、「MyBatis-Plus」が含まれていない場合、このスキルのトリガーに使用しないでください。