公式サイトは説明した: https://mp.baomidou.com/guide/wrapper.html#abstractwrapper
まず、条件は、コンストラクタ関係を導入しました
はじめに:
- 図は、抽象クラス、抽象緑色のボックスです
- ブルーボックスは、通常のクラス・カテゴリーで、新しいオブジェクトをすることができ
- クラスの親子関係に黄色い矢印が、親クラスに矢印ポイント
wapper説明:
- ラッパー:条件抽象クラス構成、トップの親クラス、抽象クラスは、4つの方法が西ペーストソースを示してい
- どこクエリパッケージのための条件、生成されたSQL:AbstractWrapper
- AbstractLambdaWrapper:解決ラムダGET欄にラムダ構文ラッパー統一プロセス。
- LambdaQueryWrapper:ルック名はラッパーラムダを使用するために、クエリの構文に使用されていることを理解することができます
- LambdaUpdateWrapper:ラムダが更新ラッパー包装
- QueryWrapper:エンティティObjectクラスの包装作業、代わりにラムダ文法の
- UpdateWrapper:更新条件パッケージ、エンティティ・オブジェクトの更新操作
説明
コンストラクタ条件
パッケージcom.lqf.crud。 輸入com.baomidou.mybatisplus.core.conditions.Wrapper; 輸入com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 輸入com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 輸入com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 輸入com.baomidou.mybatisplus.core.metadata.IPage; 輸入com.baomidou.mybatisplus.core.toolkit.Constants。 輸入com.baomidou.mybatisplus.extension.plugins.pagination.Page; 輸入com.lqf.crud.bean.crm.User; 輸入com.lqf.crud.dao.crm.UserMapper; インポートcom.sun.org.apache.xerces.internal.util.EntityResolverWrapper; 輸入org.apache.ibatis.annotations.Param; 輸入org.apache.ibatis.session.RowBounds。 輸入org.junit.Test; 輸入org.junit.runner.RunWith; 輸入org.springframework.beans.factory.annotation.Autowired; 輸入org.springframework.boot.test.context.SpringBootTest; 輸入org.springframework.test.context.junit4.SpringRunner; 輸入org.springframework.web.jsf.el.WebApplicationContextFacesELResolver; 輸入javax.naming.Name。 輸入はjava.util.ArrayList; 輸入java.util.HashMapを; インポートjava.util.Listに、 インポートjava.util.Map; @RunWith(SpringRunnerのクラス) @SpringBootTest パブリック クラスQueryWrapperTests { @Autowired プライベートUserMapperマッパー; / ** * <P> *エンティティ条件に従って、削除レコード、QueryWrapper (nullも可能)オペレーションエンティティ・オブジェクト・クラスのパッケージング の下のフィールドの名前を削除queryWrapperクエリ以降に取得した*がnullに等しいとより大きな電子メールフィールドに12歳がnullでない場合よりも *同様に追加文言条件は仕方がありませんそれはあまりにも多くを紹介しています。 * </ P> * / @Test 公共 ボイド削除(){ QueryWrapper <ユーザー> = queryWrapper 新しい新しい QueryWrapper <> (); queryWrapper .isNull( "名前" ) .GE( "年齢"、12れる) .isNotNull( "電子メールで" ); intは削除= mapper.delete(queryWrapper); System.out.printlnは( "削除戻りCOUNT =" + DELETE)。 } / ** * <P-> *係る実体状態、行を選択し、 *削除テクトニクス条件と同じ上記が、エラーの数が存在することになる場合seletOneリターンは、固体のレコードであります * </ P-> * / @テスト 公共 ボイドselectOne(){間 QueryWrapper <ユーザー> = queryWrapper 新しい新しい QueryWrapper <> (); QueryWrapper.eq( "名前"、 "LQF" ); ユーザーユーザー = mapper.selectOne(queryWrapper) のSystem.out.println(ユーザ); } / ** * <P> *ラッパー条件を、合計クエリ多数の記録 * </ P> * * @param queryWrapperエンティティ・オブジェクト * / @Test 公共 ボイドSelectCount(){ queryWrapper <ユーザー> = queryWrapper 新しい新しい queryWrapperを<> (); queryWrapper.eq( "名前"、 "LQF" )。 整数をCOUNT =マッパー。selectCount(queryWrapper)。 のSystem.out.println(COUNT); } / ** * <P> *エンティティ条件、クエリのすべてのレコード * </ P> * * @param queryWrapper操作エンティティ・オブジェクト・クラスをパッケージ(であってもよいですヌル)全体クエリがnullである * / @Test 公共 ボイド(){SelectListのある リスト <ユーザ>リスト= mapper.selectList(NULL ); のSystem.out.println(一覧); } / ** * <P> *条件ラッパー、クエリのすべてのレコード * </ P> * * @paramのqueryWrapperの包装作業エンティティオブジェクトクラスは、(nullも可能) * / @Test 公共 ボイドselectMaps(){ QueryWrapper <ユーザー> queryWrapper = 新しい QueryWrapper <> (); queryWrapper.isNotNull( "名前" ); 一覧は <地図<文字列は、オブジェクトは>> =マッピングしmapper.selectMaps(queryWrapper)。 用(MAP <文字列、OBJECT> マップ:マップ){ のSystem.out.println(マップ) } } / ** *打印结果 * {名前= LQF、ID = 1046282328366391406、年齢= 12、[email protected]、ステータス=偽} * {名前= LQF、ID = 1046282328366391407、年齢= 12、Eメール= [email protected]、ステータス=偽} * {名前= LQF、ID = 1046282328366391408、年齢= 12、[email protected]、状態=偽} * {名前= LQF、ID = 1046282328366391409、年齢= 12、[email protected]、 * {名前= LQF、ID = 1046282328366391410、年齢= 12、[email protected]、ステータス=偽} * {名前= LQF、ID = 1046282328366391411、年齢= 12、[email protected]、状態=偽} * {名前= LQF、ID = 1046282328366391412、年齢= 12、[email protected]、ステータス=偽} * {名前= LQF、ID = 1046282328366391413、年齢= 12、[email protected]、ステータス=偽} * {名前= LQF、ID = 1046282328366391414、年齢= 12、Eメール= LQF @ 163。 COM、ステータス=偽} * {名前= LQF、ID = 1046282328366391415、年齢= 12、[email protected]、ステータス=偽} * {名前= LQF、ID = 1046282328366391416、年齢= 12、Eメール= LQF @ 163.com、状態=偽} * = {LQF名、ID = 1046282328366391417、年齢= 12は、[email protected]、偽} =のステータスである * {名前= LQF、ID = 1,046,282,328,366,391,418、年齢= 12は、電子メール= LQFで163 @、です。 COM、偽の状態に=} *モードキーのJSONタイプ * / / ** * <P> *エンティティの条件、クエリレコード(およびページ)のすべて * </ P> * * @paramのページタブのクエリ(缶RowBounds.DEFAULT) * @Param queryWrapper包装操作エンティティ・オブジェクト・クラスは、(NULLであることができる) * / @Test 公共 ボイドSelectPage(){ ページ <ユーザー> =ページ新しい新しいページ<>(1 ,. 5 ); QueryWrapper <ユーザー> = queryWrapper 新しい新しい * <==カラム:COUNT(1) * <==行:100QueryWrapper <> (); Ipageを <ユーザー> userIPage = mapper.selectPage(ページ、queryWrapper)。 System.out.println(userIPage)。 } / ** *打印结果 * ==>準備:SELECT COUNT(1)ユーザから * ==>パラメータ: * ==>準備:ユーザーLIMIT FROM SELECT ID、氏名、年齢、電子メール、状態0,5 * = =>パラメータ: * <==列:ID、名前、年齢、電子メール、ステータス * <==行:1046282328366391319、LQF、12、[email protected]、0 * <==行:1046282328366391320、LQF、12、 [email protected]、0 * <==行:1046282328366391321、LQF、12、[email protected]、0 * <==行:1046282328366391322、LQF、12は、[email protected]、0 * <==行:1046282328366391323、LQF、12は、[email protected]、0 * <==合計:. 5 * * *これは、追加プラグインタブ突出なければならない * @Bean *公共PaginationInterceptor paginationInterceptor(){ *新しい新を返しますPaginationInterceptor(); *} * / / ** * <P> *ラッパーの条件、クエリレコード(およびページ)のすべて * </ P> * * @param ページ]タブクエリ * @param queryWrapper梱包業務エンティティ・オブジェクト・クラス * / @Test 公共 無効selectMapsPage(){ ページ <ユーザー> =ページ新しい新しいページ<>(1 ,. 5 ); QueryWrapper <ユーザー> = queryWrapper 新しい新しい QueryWrapper <> (); Ipageを <地図<文字列オブジェクト>> mapIPage = mapper.selectMapsPage(ページ、 queryWrapper) のSystem.out.println(mapIPage); } / ** *のみ最後のタブを返す同様に、異なる種類 * / / ** * <P> * whereEntity条件、レコードを更新 * </ P> * * @paramのエンティティのエンティティオブジェクト(セット状態値がnullではない) * @param操作エンティティ・オブジェクト・クラスをパッケージupdateWrapper(句実体生成する、ヌルに使用されてもよい) * / @Test 公共 ボイド更新(){ // の修正値 ユーザーユーザー= 新しい新しいユーザー(); user.setStatus(真の) ユーザ.setName( "zhangsan" ); // 変更条件S UpdateWrapper <ユーザー> userUpdateWrapper = *印刷結果新新UpdateWrapper <> (); userUpdateWrapper.eq( "名前"、 "LQF" ); INT更新= mapper.update(ユーザ、userUpdateWrapper)。 System.out.println(更新)。 } / ** *非トランザクションSQLSESSIONを閉じる[org.apache.ibatis.session.defaults.DefaultSqlSession@56a4f272] * 100 * ==>準備:UPDATEユーザーSET名=?ステータス=?WHERE名=? * ==>パラメータ:zhangsan(文字列)、(論理値)true、LQF(文字列) * <==アップデート:100 * 2018年10月2日15:08:03.928 INFO 7972 --- [スレッド-2] oswcsGenericWebApplicationContext: org.springframework.web.context.support.GenericWebApplicationContext@37313c65を閉じる:スタートアップ日[火2018年10月02夜3時08分00秒CST]。コンテキスト階層のルート * 2018年10月2日15:08:03.937がINFO 7972 --- [スレッドが-2] com.zaxxer.hikari.HikariDataSource:HikariPool-1 -シャットダウンを開始... * 2018年10月2日15: 08:04.053 INFO 7972 --- [スレッド-2] com.zaxxer.hikari.HikariDataSource:HikariPool-1 -シャットダウンが完了しました。 * *プロセスは、終了コード0で終了します * / }