コンテンツにスキップ

導入方法

MyBatis-Plusは、さまざまなユーザーのニーズに対応するために豊富な設定オプションを提供しています。これらの設定の一部はMyBatisネイティブでサポートされている設定を継承しており、もう一部はMyBatis-Plus特有の拡張設定です。

使用方法

Spring Boot 設定

Spring Boot プロジェクトでは、application.yml または application.properties ファイルを使用して MyBatis-Plus を設定できます。

mybatis-plus:
configuration:
# MyBatis 設定
map-underscore-to-camel-case: true
global-config:
# グローバル設定
db-config:
# データベース設定
id-type: auto

Spring MVC の設定

従来の Spring MVC プロジェクトでは、XML 設定ファイルを使用して MyBatis-Plus を設定できます。

<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:mapper/**/*.xml"/>
<property name="typeAliasesPackage" value="com.your.domain"/>
<!-- その他の設定 -->
</bean>

基本機能

MyBatis-Plus は、MyBatis を強化したツールです。MyBatis のすべての機能に加えて、多くの便利な機能を提供します。これにより、開発効率が大幅に向上し、コードの記述量が削減されます。

MyBatis-Plus の主な特徴は以下の通りです:

  • 豊富な CRUD 操作: 一般的なデータベース操作のための組み込みメソッドを提供します
  • 強力な条件コンストラクタ: 複雑なクエリ条件を簡単に構築できます
  • コードジェネレータ: エンティティ、マッパー、サービス、コントローラーのコードを自動生成します
  • ページネーションサポート: 多様なデータベースに対応したページネーション機能を提供します
  • パフォーマンス分析: SQL 実行のパフォーマンス分析とブロッキングの検出をサポートします
  • グローバルなインターセプタ: データの権限管理や論理削除などの機能を実装できます

主な利点

  • 学習コストが低い: MyBatis に精通している開発者はすぐに習得できます
  • 柔軟性が高い: カスタム SQL を引き続き使用できます
  • 強力な拡張性: プラグインメカニズムを通じて簡単に拡張できます
  • アクティブなコミュニティ: 活発なコミュニティサポートと継続的なメンテナンス

クイックスタート

// Spring Boot アプリケーションでの使用例
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
<!-- Maven 依存関係 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>最新バージョン</version>
</dependency>

configLocation

  • タイプString
  • デフォルト値null

MyBatis 設定ファイルの場所を指定します。個別の MyBatis 設定ファイルが存在する場合、そのパスを configLocation に設定する必要があります。

設定例

mybatis-plus:
config-location: classpath:/mybatis-config.xml

mapperLocations

  • タイプString[]
  • デフォルト値["classpath*:/mapper/**/*.xml"]

MyBatis Mapper に対応する XML ファイルの場所を指定します。Mapper にカスタムメソッドが存在する場合、この設定が必要です。

設定例

mybatis-plus:
mapper-locations: classpath:/mapper/**.xml

typeAliasesPackage

  • タイプString
  • デフォルト値null

MyBatis のエイリアスパッケージスキャンパスを指定します。このパッケージ内のクラスにエイリアスを登録するために使用されます。登録後、Mapper に対応する XML ファイルでは、完全修飾クラス名を使用せずにクラス名を直接使用できます。

設定例

mybatis-plus:
type-aliases-package: com.your.domain

typeAliasesSuperType

  • タイプClass<?>
  • デフォルト値null

typeAliasesPackage と併用して、指定された親クラスのサブクラスのみをスキャンします。

設定例

mybatis-plus:
type-aliases-super-type: com.your.domain.BaseEntity

typeHandlersPackage

  • タイプString
  • デフォルト値null

TypeHandlerのスキャンパッケージを指定します。カスタム型変換器を登録するために使用されます。

設定例

mybatis-plus:
type-handlers-package: com.your.typehandlers

typeEnumsPackage

  • タイプString
  • デフォルト値null

バージョン 3.5.2 以降、この設定は無効となり、汎用列挙型機能は設定なしで使用できるようになりました。

checkConfigLocation Spring Boot Only

  • タイプboolean
  • デフォルト値false

起動時に MyBatis の XML ファイルの存在をチェックするかどうかを指定します。デフォルトではチェックしません。

設定例

mybatis-plus:
check-config-location: true

executorType Spring Boot Only

  • タイプExecutorType
  • デフォルト値simple

MyBatis の実行器タイプを指定します。SIMPLEREUSEBATCH が利用可能です。

設定例

mybatis-plus:
executor-type: reuse

configurationProperties

  • タイプProperties
  • デフォルト値null

外部化された MyBatis Properties 設定を指定します。設定を分離し、異なる環境での設定デプロイを実現するために使用されます。

設定例

mybatis-plus:
configuration-properties: classpath:/mybatis-properties.properties

設定

  • タイプConfiguration
  • デフォルト値null

ネイティブ MyBatis がサポートする設定です。詳細は Configuration を参照してください。

globalConfig

  • タイプcom.baomidou.mybatisplus.core.config.GlobalConfig
  • デフォルト値GlobalConfig::new

MyBatis-Plus のグローバル戦略設定です。詳細については GlobalConfig を参照してください。

設定例

mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
id-type: auto

設定

MyBatis-Plus の Configuration 設定は MyBatis ネイティブでサポートされている設定を継承しています。これは、MyBatis XML 設定ファイルの形式で設定できるほか、Spring Boot または Spring MVC の設定ファイルで設定することも可能であることを意味します。

mapUnderscoreToCamelCase

  • タイプboolean
  • デフォルト値true

自動キャメルケース命名規則のマッピングを有効にします。これは、古典的なデータベース列名 A_COLUMN(スネークケース)から古典的な Java プロパティ名 aColumn(キャメルケース)への類似マッピングです。

設定例

mybatis-plus:
configuration:
map-underscore-to-camel-case: true

defaultEnumTypeHandler

  • タイプClass<? extends TypeHandler>
  • デフォルト値org.apache.ibatis.type.EnumTypeHandler

デフォルトの列挙型処理クラスです。このプロパティを設定すると、列挙型はすべて指定されたプロセッサで処理されます。

設定例

mybatis-plus:
configuration:
default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler

aggressiveLazyLoading

  • タイプboolean
  • デフォルト値true

true に設定すると、遅延読み込みオブジェクトは任意の遅延プロパティによって完全に読み込まれる可能性があります。それ以外の場合、各プロパティは必要に応じて読み込まれます。lazyLoadingEnabled と併用する必要があります。

設定例

mybatis-plus:
configuration:
aggressive-lazy-loading: false

autoMappingBehavior

  • タイプAutoMappingBehavior
  • デフォルト値partial

MyBatis の自動マッピング戦略です。この設定により、MyBatis がデータベースのテーブルフィールドとオブジェクトのプロパティを自動的にマッピングするかどうか、およびその方法を指定できます。

  • AutoMappingBehavior.NONE:自動マッピングを有効にしません
  • AutoMappingBehavior.PARTIAL:ネストされていない resultMap に対してのみ自動マッピングを行います
  • AutoMappingBehavior.FULL:すべての resultMap に対して自動マッピングを行います

設定例

mybatis-plus:
configuration:
auto-mapping-behavior: full

autoMappingUnknownColumnBehavior

  • タイプAutoMappingUnknownColumnBehavior
  • デフォルト値NONE

MyBatis の自動マッピング時に未知のカラムまたは未知のプロパティが検出された場合の処理戦略を設定します。この設定により、MyBatis が自動マッピングプロセス中に未知のカラムまたは未知のプロパティに遭遇した場合の処理方法を指定できます。

  • AutoMappingUnknownColumnBehavior.NONE:何も処理を行いません(デフォルト値)
  • AutoMappingUnknownColumnBehavior.WARNING:関連する警告情報をログとして出力します
  • AutoMappingUnknownColumnBehavior.FAILING:マッピング失敗として処理し、例外と詳細情報をスローします

設定例

mybatis-plus:
configuration:
auto-mapping-unknown-column-behavior: warning

localCacheScope

  • タイプString
  • デフォルト値SESSION

MyBatis の 1 次キャッシュを設定します。デフォルトは SESSION です。

  • SESSION:セッションレベルのキャッシュ。同じ Session 内での同一のクエリは、再度データベースに問い合わせません
  • STATEMENT:1 次キャッシュを無効化します

設定例

mybatis-plus:
configuration:
local-cache-scope: statement

cacheEnabled

  • タイプboolean
  • デフォルト値true

MyBatisのセカンダリキャッシュを有効にするかどうかを設定します。

設定例

mybatis-plus:
configuration:
cache-enabled: false

callSettersOnNulls

  • タイプboolean
  • デフォルト値false

結果セットの値が null の場合に、マッピングオブジェクトの Setter メソッド(Map オブジェクトの場合は put メソッド)を呼び出すかどうかを指定します。通常は、Map.keySet() への依存や null 値の初期化が必要な場合に使用されます。

設定例

mybatis-plus:
configuration:
call-setters-on-nulls: true

configurationFactory

  • タイプClass<?>
  • デフォルト値null

Configuration インスタンスを提供するファクトリクラスを指定します。このファクトリが生成するインスタンスは、デシリアライズされたオブジェクトの遅延読み込みプロパティ値をロードするために使用されます。ファクトリクラスは static Configuration getConfiguration() というシグネチャを持つメソッドを含んでいる必要があります。

設定例

mybatis-plus:
configuration:
configuration-factory: com.your.config.MyConfigurationFactory

GlobalConfig

GlobalConfig は MyBatis-Plus が提供するグローバル戦略設定であり、開発者が MyBatis-Plus の動作をグローバルにカスタマイズすることを可能にします。

  • タイプboolean
  • デフォルト値true

コンソールに MyBatis-Plus の LOGO を出力するかどうかを制御します。

設定例

mybatis-plus:
global-config:
banner: false

enableSqlRunner

  • タイプboolean
  • デフォルト値false

SqlRunnercom.baomidou.mybatisplus.extension.toolkit.SqlRunner)の初期化を制御します。

設定例

mybatis-plus:
global-config:
enable-sql-runner: true

sqlInjector

  • タイプcom.baomidou.mybatisplus.core.injector.ISqlInjector
  • デフォルト値com.baomidou.mybatisplus.core.injector.DefaultSqlInjector

SQL インジェクターは、MyBatis-Plus が提供する汎用メソッドを注入するために使用されます。Starter 環境下では @Bean による注入をサポートしています。

設定例

mybatis-plus:
global-config:
sql-injector: com.baomidou.mybatisplus.core.injector.DefaultSqlInjector
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
return interceptor;
}

superMapperClass

  • タイプClass
  • デフォルト値com.baomidou.mybatisplus.core.mapper.Mapper.class

汎用 Mapper の親クラスです。この親クラスのサブクラスである Mapper のみが、sqlInjector 内のメソッドを注入します。

metaObjectHandler

  • タイプcom.baomidou.mybatisplus.core.handlers.MetaObjectHandler
  • デフォルト値null

メタオブジェクトフィールド自動挿入コントローラーです。エンティティクラスのフィールドを自動的に設定するために使用されます。Starter環境下では@Beanによる注入をサポートしています。

設定例

mybatis-plus:
global-config:
meta-object-handler: com.example.MyMetaObjectHandler
@Bean
public MetaObjectHandler metaObjectHandler() {
return new MyMetaObjectHandler();
}

identifierGenerator Since 3.3.0

  • タイプcom.baomidou.mybatisplus.core.incrementer.IdentifierGenerator
  • デフォルト値com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator

ID ジェネレーターは、エンティティクラスの一意な識別子を生成するために使用されます。Starter 環境では@Beanによる注入をサポートしています。

設定例

mybatis-plus:
global-config:
identifier-generator: com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator
@Bean
public IdentifierGenerator identifierGenerator() {
return new CustomIdentifierGenerator();
}

dbConfig

  • タイプcom.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig
  • デフォルト値null

MyBatis-Plus グローバル戦略における DB 戦略設定です。詳細については DbConfig を参照してください。

設定例

mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
id-type: ASSIGN_ID

DbConfig

idType

  • タイプ:com.baomidou.mybatisplus.annotation.IdType
  • デフォルト値:ASSIGN_ID

グローバルなデフォルトの主キータイプです。

  • IdType.AUTO:データベースの自動増分IDを主キーとして使用します。
  • IdType.NONE:特定の生成戦略はありません。グローバル設定にIdType関連の設定がある場合は、グローバル設定に従います。
  • IdType.INPUT:データ挿入前に、ユーザー自身が主キー値を設定します。
  • IdType.ASSIGN_IDIDを自動的に割り当てます。LongIntegerString タイプの主キーに適用されます。デフォルトでは、雪花アルゴリズムを IdentifierGeneratornextId で実装しています。 @since 3.3.0
  • IdType.ASSIGN_UUIDUUIDを自動的に割り当てます。String タイプの主キーに適用されます。デフォルトの実装は IdentifierGeneratornextUUID メソッドです。 @since 3.3.0

設定例

mybatis-plus:
global-config:
db-config:
id-type: ASSIGN_ID

tablePrefix

  • タイプ:String
  • デフォルト値:null

テーブル名のプレフィックス

設定例

mybatis-plus:
global-config:
db-config:
table-prefix: tbl_

schema

  • タイプ:String
  • デフォルト値:null

データベースのスキーマ名を指定します。通常は設定する必要はありません。

設定例

mybatis-plus:
global-config:
db-config:
schema: my_schema

columnFormat

  • タイプ:String
  • デフォルト値:null

SQL生成時にフィールド名をフォーマットするために使用されます。例えば、プレフィックスやサフィックスを追加する場合などです。主キーには無効です。例: %s

設定例

mybatis-plus:
global-config:
db-config:
column-format: %s_field

tableFormat Since 3.5.3.2

  • タイプ:String
  • デフォルト値:null

SQL生成時にテーブル名をフォーマットします。例: %s

設定例

mybatis-plus:
global-config:
db-config:
table-format: tbl_%s

propertyFormat Since 3.3.0

  • タイプ:String
  • デフォルト値:null

Entityのフィールドがデータベースフィールドにマッピングされる際のフォーマットに使用されます。column as property の場合のみ有効で、主キーには適用されません。例: %s

設定例

mybatis-plus:
global-config:
db-config:
property-format: %s_prop

tableUnderline

  • タイプ:boolean
  • デフォルト値:true

テーブル名にキャメルケースからスネークケースへの変換を使用するかどうかを制御します。

設定例

mybatis-plus:
global-config:
db-config:
table-underline: false

capitalMode

  • タイプ:boolean
  • デフォルト値:false

テーブル名とフィールド名で大文字命名を使用するかどうかを制御します。

設定例

mybatis-plus:
global-config:
db-config:
capital-mode: true

keyGenerator

  • タイプ:com.baomidou.mybatisplus.core.incrementer.IKeyGenerator
  • デフォルト値:null

カスタムテーブル主キージェネレーターを設定します。Starter環境下では@Beanによる注入をサポートしています。

設定例

mybatis-plus:
global-config:
db-config:
key-generator: com.example.CustomKeyGenerator
@Bean
public IKeyGenerator keyGenerator() {
return new CustomKeyGenerator();
}

logicDeleteField

  • タイプ:String
  • デフォルト値:null

グローバルな Entity 論理削除フィールド属性名。論理削除機能が有効な場合のみ効果があります。

設定例

mybatis-plus:
global-config:
db-config:
logic-delete-field: deleted

logicDeleteValue

  • タイプ:String
  • デフォルト値:1

論理削除済み値を示す値。論理削除機能が有効な場合のみ適用されます。

設定例

mybatis-plus:
global-config:
db-config:
logic-delete-value: true

logicNotDeleteValue

  • タイプ:String
  • デフォルト値:0

論理削除されていない値を示す値で、論理削除機能が有効な場合のみ適用されます。

設定例

mybatis-plus:
global-config:
db-config:
logic-not-delete-value: false

insertStrategy

  • タイプ:com.baomidou.mybatisplus.annotation.FieldStrategy
  • デフォルト値:NOT_NULL

Insert 時のフィールド検証戦略を制御します。

  • FieldStrategy.DEFAULT:グローバル設定の戦略に従います。グローバル設定が指定されていない場合、デフォルトの動作はフィールド値が NULL でない場合にのみそのフィールドを挿入します。
  • FieldStrategy.ALWAYS:フィールド値が NULL かどうかに関わらず、常にそのフィールドを挿入します。
  • FieldStrategy.NOT_NULL:フィールド値が NULL でない場合にのみ、そのフィールドを挿入します。
  • FieldStrategy.NOT_EMPTY:フィールド値が空でない(文字列型の場合)または NULL でない(その他の型の場合)場合にのみ、そのフィールドを挿入します。
  • FieldStrategy.NEVER:フィールド値が NULL でない場合でも、そのフィールドを挿入しません。
  • FieldStrategy.IGNORED:判定を無視します。効果は “ALWAYS” と同じです @Deprecated

設定例

mybatis-plus:
global-config:
db-config:
insert-strategy: NEVER

updateStrategy

  • タイプ:com.baomidou.mybatisplus.annotation.FieldStrategy
  • デフォルト値:NOT_NULL

Update 時のフィールド検証戦略を制御します。

設定例

mybatis-plus:
global-config:
db-config:
update-strategy: IGNORED

whereStrategy

  • タイプ:com.baomidou.mybatisplus.annotation.FieldStrategy
  • デフォルト値:NOT_NULL

Update 時のフィールド検証戦略を制御します。これは、Wrapper が内部の Entity に基づいて生成する Where 条件です。

設定例

mybatis-plus:
global-config:
db-config:
where-strategy: ALWAYS
Baomidou

© 2016-2025 Baomidou™. All Rights Reserved.

Power by Astro Starlight | Sponsored by JetBrains

渝ICP备2021000141号-1 | 渝公网安备50011302222097