MyBatisPlusのDMLプログラミング制御

ここに画像の説明を挿入します

1. ID 生成ポリシー制御 (挿入)

主キー生成の戦略は何ですか?

テーブルごとに異なる ID 生成戦略が適用されます

  • ログ: 自動インクリメント (1、2、3、4、…)
  • ショッピングオーダー: 特別ルール (FQ23948AK3843)
  • テイクアウト注文:関連エリアの日付とその他の情報(10 04 20200314 34 91)
  • 関係表:idは省略可能
  • ……

1.1 ID生成ポリシー制御(@TableIdアノテーション)

  • 名前: @TableId

  • タイプ:属性アノテーション

  • 位置: モデル クラスの主キーを表すために使用される属性定義の上

  • 機能: 現在のクラスの主キー属性の生成戦略を設定します。

  • 関連する属性

    type : 主キー属性の生成戦略を設定します。値は IdType 列挙値を参照します。

ここに画像の説明を挿入します

1.2 グローバルポリシーの設定

mybatis-plus:
  global-config:
    db-config:
      id-type: assign_id
      table-prefix: tbl_
ID 生成戦略のグローバル構成

ここに画像の説明を挿入します

テーブル名プレフィックスのグローバル構成

ここに画像の説明を挿入します

2. 複数レコード操作(一括削除・一括選択)

2.1 主キーに従って複数のレコードを削除する

//删除指定多条数据
List<Long> list = new ArrayList<>();
list.add(1402551342481838081L);
list.add(1402553134049501186L);
list.add(1402553619611430913L);

userDao.deleteBatchIds(list);

2.2 主キーに基づいて複数のレコードをクエリする

//查询指定多条数据
List<Long> list = new ArrayList<>();
list.add(1L);
list.add(3L);
list.add(4L);
userDao.selectBatchIds(list);

3. 論理削除(削除/更新)

実際の環境で、データを削除したい場合、実際にそのデータはデータベースから削除されるのでしょうか?

  • 削除操作のビジネス上の問題: ビジネス データがデータベースから削除される

  • 論理削除: データの利用可能ステータス フィールドを設定します。削除する場合、ステータス フィールドを利用不可ステータスに設定すると、データはデータベースに残ります。

ここに画像の説明を挿入します

3.1 論理削除の場合

3.1.1 論理削除マークフィールドをデータベーステーブルに追加する

ここに画像の説明を挿入します

3.1.2 対応するフィールドをエンティティ クラスに追加し、現在のフィールドを論理削除マーク フィールドとして設定する
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

@Data
public class User {
    
    

    private Long id;
    
    //逻辑删除字段,标记当前记录是否被删除
    @TableLogic
    private Integer deleted;
    
}
3.1.3 トゥームストーン リテラル値の構成
mybatis-plus:
  global-config:
    db-config:
      table-prefix: tbl_
      # 逻辑删除字段名
      logic-delete-field: deleted
      # 逻辑删除字面值:未删除为0
      logic-not-delete-value: 0
      # 逻辑删除字面值:删除为1
      logic-delete-value: 1

論理削除の本質: 論理削除の本質は、実際には変更操作です。トゥームストーン フィールドが追加されると、データのクエリ時にトゥームストーン フィールドも自動的に含まれます。

SQL ステートメントを実行します。
update tbl_user set deleted=1 where id = ? and deleted = 0

おすすめ

転載: blog.csdn.net/qq_51808107/article/details/131915268