Control de programación DML de MyBatisPlus
1. Control de política de generación de ID (Insertar)
¿Cuáles son las estrategias para la generación de claves primarias?
Diferentes tablas aplican diferentes estrategias de generación de identificación.
- Registro: incremento automático (1,2,3,4,…)
- Órdenes de Compra: Reglas Especiales (FQ23948AK3843)
- Pedido para llevar: zona relacionada fecha y otra información (10 04 20200314 34 91)
- Tabla relacional: la identificación se puede omitir
- ……
1.1 Control de política de generación de ID (@anotación TableId)
-
Nombre: @TableId
-
Tipo: Anotación de atributos
-
Ubicación: encima de la definición de la propiedad utilizada para representar la clave principal en la clase de modelo
-
Rol: establecer la estrategia de generación del atributo de clave principal en la clase actual
-
atributos relacionados
tipo : establece la estrategia de generación del atributo de clave principal, el valor se refiere al valor de enumeración IdType
1.2 Configuración de políticas globales
mybatis-plus:
global-config:
db-config:
id-type: assign_id
table-prefix: tbl_
Configuración global de la estrategia de generación de ID
Configuración global del prefijo del nombre de la tabla
2. Operación de registros múltiples (eliminar/seleccionar por lotes)
2.1 Eliminar varios registros según la clave principal
//删除指定多条数据
List<Long> list = new ArrayList<>();
list.add(1402551342481838081L);
list.add(1402553134049501186L);
list.add(1402553619611430913L);
userDao.deleteBatchIds(list);
2.2 Consultar varios registros según la clave principal
//查询指定多条数据
List<Long> list = new ArrayList<>();
list.add(1L);
list.add(3L);
list.add(4L);
userDao.selectBatchIds(list);
3. Eliminación lógica (Eliminar/Actualizar)
En el entorno real, si desea eliminar un dato, ¿realmente lo eliminará de la base de datos?
-
Eliminar problema comercial de operación: los datos comerciales se descartan de la base de datos
-
Eliminación lógica: establezca si el campo de estado está disponible para los datos, configure el campo de estado como no disponible al eliminar y los datos permanecen en la base de datos
3.1 Caso de eliminación lógica
3.1.1 Agregar un campo de desecho en la tabla de la base de datos
3.1.2 Agregue el campo correspondiente en la clase de entidad y establezca el campo actual como el campo de marca de eliminación lógica
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@Data
public class User {
private Long id;
//逻辑删除字段,标记当前记录是否被删除
@TableLogic
private Integer deleted;
}
3.1.3 Configurar literales de desecho
mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
# 逻辑删除字段名
logic-delete-field: deleted
# 逻辑删除字面值:未删除为0
logic-not-delete-value: 0
# 逻辑删除字面值:删除为1
logic-delete-value: 1
La esencia de la eliminación lógica: la esencia de la eliminación lógica es en realidad una operación de modificación. Si se agrega un campo de desecho, el campo de desecho se agregará automáticamente al consultar datos.
Ejecute la declaración SQL:
update tbl_user set deleted=1 where id = ? and deleted = 0