四、DML编程控制

1. id生成策略控制(Insert)

问题导入

主键生成的策略有哪几种方式?

不同的表应用不同的id生成策略

1.1 id生成策略控制(@TableId注解)

1.2 全局策略配置

id生成策略全局配置

image-20210801183128266

表名前缀全局配置

image-20210801183157694

 

2. 多记录操作(批量Delete/Select)

问题导入

MyBatisPlus是否支持批量操作?

image-20210801183334584

2.1 按照主键删除多条记录

2.2 根据主键查询多条记录

3. 逻辑删除(Delete/Update)

问题导入

在实际环境中,如果想删除一条数据,是否会真的从数据库中删除该条数据?

image-20210801183459750

3.1 逻辑删除案例

①:数据库表中添加逻辑删除标记字段

image-20210801183545635

②:实体类中添加对应字段,并设定当前字段为逻辑删除标记字段
③:配置逻辑删除字面值

逻辑删除本质:逻辑删除的本质其实是修改操作。如果加了逻辑删除字段,查询数据时也会自动带上逻辑删除字段。

image-20210801223228871

4. 乐观锁(Update)

问题导入

乐观锁主张的思想是什么?

image-20210801183851887

4.1 乐观锁案例

①:数据库表中添加锁标记字段

image-20210801183929041

②:实体类中添加对应字段,并设定当前字段为逻辑删除标记字段
③:配置乐观锁拦截器实现锁机制对应的动态SQL语句拼装
④:使用乐观锁机制在修改前必须先获取到对应数据的verion方可正常进行

image-20210801223855681