Anotações comuns do Mybatis-Plus

Índice

Anotações comuns do Mybatis-Plus

1. @NomeTabela

2、@TableId

2.1 Tipo de ID

3、@TableField

4、@Versão

5、@EnumValue

6、@TableLogic

7、@KeySequence

8、@OrderBy


Anotações comuns do Mybatis-Plus

1. @NomeTabela

  • Descrição: Anotação do nome da tabela, identificando a tabela correspondente à classe da entidade
  • Onde usar: classe de entidade
@TableName("sys_user")
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

 

Atributos tipo Deve ser especificado valor padrão descrever
valor Corda não "" Nome da tabela
esquema Corda não "" esquema
keepGlobalPrefix boleano não falso Se deve continuar usando o valor global tablePrefix (quando o global tablePrefix estiver em vigor)
resultadoMapa Corda não "" O id de resultMap em xml (usado para satisfazer tipos específicos de ligação de objeto de classe de entidade)
autoResultMap boleano não falso Se o resultMap deve ser construído e usado automaticamente (se o resultMap estiver definido, a construção automática e a injeção do resultMap não serão executadas)
excluirPropriedade Corda[] não {} Nomes de atributos a serem excluídos

Descrição sobre  autoResultMap :

O MP irá construir um automaticamente  resultMap e injetá-lo no MyBatis (geralmente não usado), observe o seguinte:

Como a camada inferior do MP é MyBatis, o MP apenas ajuda a injetar CRUD comumente usado no MyBatis. Antes da injeção, ele é dinâmico (muda de acordo com os campos e anotações da entidade), mas após a injeção, é estático (igual ao conteúdo na configuração XML).

Para  typeHandler atributos, MyBatis suporta apenas escrita em 2 lugares:

  1. Definido no resultMap, usado para encapsular os resultados da consulta
  2. Definido   após  a  instrução  insert and   (por exemplo: ) e se aplica apenas ao atual update#{property}property#{property,typehandler=xxx.xxx.xxx}设置值

Além dos dois  typeHandler formulários diretamente especificados acima, MyBatis possui uma configuração para verificação global de pacotes customizados  , o princípio é  encontrar o correspondente  typeHandler de acordo com o seu  tipo  e utilizá-lo.propertytypeHandler

2、@TableId

  • Descrição: anotação de chave primária
  • Onde usar: campo de chave primária da classe de entidade
@TableName("sys_user")
public class User {
    @TableId
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
Atributos tipo Deve ser especificado valor padrão descrever
valor Corda não "" Nome do campo-chave primário
tipo Enum não IdType.NONE Especifique o tipo de chave primária

2.1 Tipo de ID

Atributos

ilustrar

AUTO Incremento automático de ID do banco de dados
NENHUM Sem estado, este tipo não possui conjunto de chave primária (a anotação equivale a seguir o global, e o Rio global é aproximadamente igual a INPUT)
ENTRADA Defina você mesmo o valor da chave primária antes de inserir
ASSIGN_ID Atribuir ID (o tipo de chave primária é Number (Long e Integer) ou String) (desde 3.3.0), use o IdentifierGeneratormétodo de interface nextId(a classe de implementação padrão é DefaultIdentifierGeneratoro algoritmo Snowflake)
ASSIGN_UUID Atribua UUID, o tipo de chave primária é String (desde 3.3.0), use IdentifierGeneratoro método de interface nextUUID(método padrão)

3、@TableField

  • Descrição: Anotações de campo (chave não primária)
@TableName("sys_user")
public class User {
    @TableId
    private Long id;
    @TableField("nickname")
    private String name;
    private Integer age;
    private String email;
}
Atributos tipo Deve ser especificado valor padrão descrever
valor Corda não "" Nome do campo do banco de dados
existir boleano não verdadeiro Se é um campo de tabela de banco de dados
doença Corda não "" Condições de comparação de consulta de entidade de campo  where . Se houver um valor definido, o valor definido prevalecerá. Caso contrário, será global por padrão  %s=#{%s}. Consulte (abre uma nova janela)
atualizar Corda não "" Injeção parcial de campo  update set , por exemplo: ao anotar o campo de versão para update="%s+1" indicar uma atualização  set version=version+1 (este atributo tem prioridade maior que  el o atributo)
inserirEstratégia Enum não FieldStrategy.DEFAULT Exemplo: NOT_NULL
insert into table_a(<if test="columnProperty != null">column</if>) values (<if test="columnProperty != null">#{columnProperty}</if>)
updateStrategy Enum FieldStrategy.DEFAULT 举例:IGNORED
update table_a set column=#{columnProperty}
whereStrategy Enum FieldStrategy.DEFAULT 举例:NOT_EMPTY
where <if test="columnProperty != null and columnProperty!=''">column=#{columnProperty}</if>
fill Enum FieldFill.DEFAULT 字段自动填充策略
select boolean true 是否进行 select 查询
keepGlobalFormat boolean false 是否保持使用全局的 format 进行处理
jdbcType JdbcType JdbcType.UNDEFINED JDBC 类型 (该默认值不代表会按照该值生效)
typeHandler Class<? extends TypeHandler> UnknownTypeHandler.class 类型处理器 (该默认值不代表会按照该值生效)
numericScale String "" 指定小数点后保留的位数

 注意:

关于`jdbcType`和`typeHandler`以及`numericScale`的说明:

numericScale只生效于 update 的 sql. jdbcTypetypeHandler如果不配合@TableName#autoResultMap = true一起使用,也只生效于 update 的 sql. 对于typeHandler如果你的字段类型和 set 进去的类型为equals关系,则只需要让你的typeHandler让 Mybatis 加载到即可,不需要使用注解

FieldStrategy:

描述
IGNORED 忽略判断
NOT_NULL 非 NULL 判断
NOT_EMPTY 非空判断(只对字符串类型字段,其他类型字段依然为非 NULL 判断)
DEFAULT 追随全局配置
NEVER 不加入SQL

 FieldFill:

描述
DEFAULT 默认不处理
INSERT 插入时填充字段
UPDATE 更新时填充字段
INSERT_UPDATE 插入和更新时填充字段

4、@Version

描述:乐观锁注解、标记 @Version 在字段上

5、@EnumValue

描述:普通枚举类注解(注解在枚举字段上)

6、@TableLogic

Descrição: Anotações de processamento lógico de campo de tabela (exclusão lógica)

Atributos tipo Deve ser especificado valor padrão descrever
valor Corda não "" valor lógico não excluído
delval Corda não "" valor da lápide

7、@KeySequence

  • Descrição: Estratégia de chave primária de sequência oracle
  • Atributos: valor, dbType
Atributos tipo Deve ser especificado valor padrão descrever
valor Corda não "" nome da sequência
tipo de banco de dados Enum não DbType.OTHER Tipo de banco de dados. Se não estiver configurado, a implementação padrão é injetar IKeyGenerator. Múltiplas implementações devem ser especificadas.

8、@OrderBy

Descrição: SQL integrado especifica a classificação por padrão, com uma prioridade inferior à consulta condicional do wrapper

Atributos tipo Deve ser especificado valor padrão descrever
isDesc boleano não verdadeiro Se deve consultar na ordem inversa
organizar curto não Curto.MAX_VALUE Quanto menor o número, maior é

 

 Referência: Anotações | MyBatis-Plus

Acho que você gosta

Origin blog.csdn.net/qi341500/article/details/132651227
Recomendado
Clasificación