MybatisPlusとCRUDの拡大

ブログで簡単なMybatisPlus項目を作成します。MybatisPlusエントリー手続き

 

A、CRUD

選択1

すべての1.1ユーザーを探します

// チェック
@Test
  公共 無効SELECT(){ 
     // クエリのすべてのユーザー 
     一覧<ユーザー>ユーザー= userMapper.selectList(ヌル;)
     users.forEach(のSystem.out ::のprintlnを); 
 }

 

結果

 

1.2 idで検索

@Test
  公共 ボイドのselect(){ 
     // 查のIDによって 
     ユーザユーザー= userMapper.selectById(1L )。
     System.out.println(ユーザ); 
 }

 

結果

 

2.挿入

プロパティ(IDを含む)に設けられた2.1

// 
@Test
  公共 ボイド挿入(){ 
     ユーザーユーザ = 新しいユーザー(6L、 "ウィンディ"、12、 "[email protected]" )。
     int型私は= userMapper.insert(ユーザー);
     もし(!I = 0 ){ 
         System.out.printlnは( "添加成功" ); 
         ユーザuserWindy = userMapper.selectById(user.getId())。
         System.out.println( "新用户名为:" + userWindy)。
     } のSystem.out.println( "添加失败" )。
 }

 

結果

 

部分的にのみ(IDが含まれていない)プロパティを設定2.2

@Test
  公共 ボイド挿入(){ 
     // ユーザのユーザ=新しいユーザー(6L、 "ウィンディ"、12、 "[email protected]")。
     ユーザのユーザ= 新しいユーザー(); 
     user.setName( "ウィンディ" )。
     user.setAge( 12 )。
     user.setEmail( "[email protected]" );
     int型私は= userMapper.insert(ユーザ)
     のSystem.out.println(I)。
     System.out.println( "新用户为:" + ユーザー)。
 }

 

結果

 

2.3エラー数

自動ない値が挿入されていないが、0はIDが割り当てられ、一度エラーに挿入次いで

  org.springframework.dao.DuplicateKeyException

 

初回

第2

 

 

理由:使用してエンティティクラスのユーザーID の長い元のデータ型を

解決長い変更パッケージロング

 

3.更新

使用に注意してくださいupdateById ことで、オーダーIDの変更を

// 
@Test
  公共 のボイドの更新(){ 
     ユーザのユーザ = 新しいユーザー(6L、 "乗って"、65、 "[email protected]" );
     int型私は= userMapper.updateById(ユーザー);
     もし(!I = 0 ){ 
         System.out.printlnは( "修改成功" ); 
         ユーザuserRidden = userMapper.selectById(user.getId())。
         System.out.println( "修改后用户为:" + userRidden)。
     } のSystem.out.println( "修改失败" )。
 }

 

結果

 

4.削除

// 
@Test
  公共 のボイド削除(){ 
     int型 I = userMapper.deleteById(6L )。
     もし(!I = 0 ){ 
         System.out.printlnは( "删除成功" ); 
         一覧 <ユーザー>ユーザー= userMapper.selectList(ヌル); 
         users.forEach(のSystem.out ::のprintln)。
     } のSystem.out.println( "删除失败" )。
 }

 

結果

 

 

第二に、拡大

選択1

1.1バッチクエリ

@Test
  公共 ボイドのselect(){ 
     // 查询1,2,3号用户 
     一覧<ユーザー>ユーザー= userMapper.selectBatchIds(は、Arrays.asList(1、2、3 ))。
     users.forEach(のSystem.out ::のprintln); 
 }

 

結果

 

1.2条件お問い合わせ

@Test
  公共 無効selectByMap(){ 
     HashMapの <文字列、オブジェクト>マップ= 新しい HashMapの<> (); 
     // 自定义查询 
     map.put( "名前"、 "トム" ); 
     リスト <ユーザー>ユーザー= userMapper .selectByMap(マップ)
     users.forEach(のSystem.out ::のprintln); 
 }

 

結果

 

1.3ページングクエリ

コンフィギュレーションクラス内MybatisPlusConfig 追加ページネーションプラグイン

// タブプラグ
@Bean
  公共PaginationInterceptor paginationInterceptorは(){ 
     戻り 新しい新しいPaginationInterceptorを(); 
 }

 

テスト

@Test
  公共 無効selectByPage(){ 
     ページ <ユーザー>ページ= 新しいページ<>(1,5 );
     // 現在:当前页
      // サイズ:页面大小 
     userMapper.selectPage(ページ、ヌル); 
     。page.getRecords()はforEach(System.outに::のprintln)。
 }

 

結果

 

2.削除

削除2.1バッチ

@Test
  公共 ボイド削除(){ 
     // バルク削除 
     userMapper.deleteBatchIds(は、Arrays.asList(4L、5L、6L )); 
 }

 

結果

 

2.2マップは削除しました

@Test
  公共 ボイドdeleteByMap(){ 
     HashMapの <文字列、OBJECT>マップ= 新しい HashMapの<> (); 
     map.put( "名前"、 "ジャック" ); 
     userMapper.deleteByMap(マップ)
 }

 

結果

 

2.3墓石

  • 物理的に削除:データベースから直接削除します

  • トゥームストーン:データベースで除去されず、障害誘導する- (削除= 0 =削除> 1) 変数によって

    例:管理者が削除されたレコードを表示することができます

 

削除されたデータベースを追加します。

 

ユーザー
package com.zy.pojo;
 ​
 import com.baomidou.mybatisplus.annotation.*;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 ​
 import java.util.Date;
 ​
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
 public class User {
 ​
     //对应数据库的主键(UUID,自增id,雪花算法,redis,zookeeper)
     //@TableId(type = IdType.ID_WORKER) //全局唯一id
     @TableId(type = IdType.AUTO) //主键自增,对应数据库字段一定要自增
     //@TableId(type = IdType.INPUT) //手动输入
     private Long id;
     private String name;
     private Integer age;
     private String email;

     @TableLogic //逻辑删除
     private Integer deleted;
 
 }

 

要点: @TableLogic

 

配置了添加逻辑删除插件

MybatisPlusConfig

//逻辑删除插件
 @Bean
 public ISqlInjector sqlInjector() {
     return new LogicSqlInjector();
 }

 

配置文件配置逻辑删除
application.properties

 # 逻辑已删除值(默认为 1)
 mybatis-plus.global-config.db-config.logic-delete-value= 1 
 # 逻辑未删除值(默认为 0)
 mybatis-plus.global-config.db-config.logic-not-delete-value= 0 

 

测试
@Test
 public void deleteLog(){
     userMapper.deleteById(5L);
 }

 

结果

 

再查询被删用户
@Test
 public void select() {
 ​
     User user = userMapper.selectById(5L);
     System.out.println(user);
 ​
 }

 

结果

 

 

おすすめ

転載: www.cnblogs.com/kzyuan/p/12642488.html