Controle de programação DML do MyBatisPlus
1. Controle de política de geração de ID (Inserir)
Quais são as estratégias para geração de chave primária?
Tabelas diferentes aplicam diferentes estratégias de geração de ID
- registro: incremento(1,2,3,4,...)
- Pedidos de compras: regras especiais (FQ23948AK3843)
- Pedido de takeaway: data da área associada e outras informações (10 04 20200314 34 91)
- Tabela relacional: id pode ser omitido
- ……
1.1 Controle de política de geração de ID (@TableId anotação)
-
Nome: @TableId
-
Tipo: Anotação de Atributo
-
Posição: acima da definição do atributo usada para representar a chave primária na classe do modelo
-
Função: Definir a estratégia de geração do atributo chave primária na classe atual
-
atributos relacionados
type : Defina a estratégia de geração do atributo de chave primária, o valor refere-se ao valor de enumeração IdType
1.2 Configuração de política global
mybatis-plus:
global-config:
db-config:
id-type: assign_id
table-prefix: tbl_
Configuração global da estratégia de geração de ID
Configuração global do prefixo do nome da tabela
2. Operação de vários registros (excluir/selecionar lote)
2.1 Excluir vários registros de acordo com a chave primária
//删除指定多条数据
List<Long> list = new ArrayList<>();
list.add(1402551342481838081L);
list.add(1402553134049501186L);
list.add(1402553619611430913L);
userDao.deleteBatchIds(list);
2.2 Consultar vários registros com base na chave primária
//查询指定多条数据
List<Long> list = new ArrayList<>();
list.add(1L);
list.add(3L);
list.add(4L);
userDao.selectBatchIds(list);
3. Exclusão lógica (Excluir/Atualizar)
Em um ambiente real, se você quiser excluir um dado, esse dado será realmente excluído do banco de dados?
-
Excluir problema de negócios da operação: os dados de negócios são eliminados do banco de dados
-
Exclusão lógica: Defina o campo de status de disponibilidade dos dados. Ao excluir, defina o campo de status para o status indisponível e os dados permanecerão no banco de dados.
3.1 Caso de exclusão lógica
3.1.1 Adicionar campo de marca de exclusão lógica à tabela do banco de dados
3.1.2 Adicione campos correspondentes à classe de entidade e defina o campo atual como um campo de marca de exclusão lógica
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@Data
public class User {
private Long id;
//逻辑删除字段,标记当前记录是否被删除
@TableLogic
private Integer deleted;
}
3.1.3 Configurando Valores Literais de Tombstone
mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
# 逻辑删除字段名
logic-delete-field: deleted
# 逻辑删除字面值:未删除为0
logic-not-delete-value: 0
# 逻辑删除字面值:删除为1
logic-delete-value: 1
A essência da exclusão lógica: A essência da exclusão lógica é, na verdade, uma operação de modificação. Se um campo de marca para exclusão for adicionado, o campo de marca para exclusão também será incluído automaticamente ao consultar os dados.
Execute a instrução SQL:
update tbl_user set deleted=1 where id = ? and deleted = 0