java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > mybatis-plus常用注解

mybatis-plus中的常用注解

作者:十年(Sugar)

这篇文章主要介绍了mybatis-plus中的常用注解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一.前言

1.mybatis-plus简介

MyBatis-Plus(简称 MP)是一个基于 MyBatis 的增强工具,它对 Mybatis 的基础功能进行了增强,但未做任何改变。

使得我们可以可以在 Mybatis 开发的项目上直接进行升级为 Mybatis-plus,正如它对自己的定位,它能够帮助我们进一步简化开发过程,提高开发效率。

Mybatis-Plus 其实可以看作是对 Mybatis 的再一次封装,升级之后,对于单表的 CRUD 操作,调用 Mybatis-Plus 所提供的 API 就能够轻松实现,此外还提供了各种查询方式、分页等行为。

最最重要的,开发人员还不用去编写 XML,这就大大降低了开发难度.

2.mybatis-plus的优点

3.mybatis-plus依赖包

注:我的配置是基于MyBatis-plus 3.3.1的版本

<!--MyBatis-plus starter-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.3.1</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.3.1</version>
</dependency>

 二.mybatis-plus常用注解

1.@Tablename注解

@Tablename注解注解用来将指定的数据库表和 JavaBean 进行映射。

多用于项目中entity包下 实体类中

@Tablename("user")
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

看一下源码对@Tablename注解的解释

2.@Tableld注解

注:一般的写法

写法:@TableId(value=“数据库主键字段”,type = IdType.六种类型之一)

将该属性对应的字段指定为主键

属性类型默认值描述
valuestring""主键字段名
typeEnumIdType.NONE主键类型

类型:

描述
Auto数据库自增
Input自行输入
ID_Worker分布式全局唯一ID 长整型类型
UUID32位UUID字符串
NONE无状态
ID_WORKER_STR分布式全局唯一ID 字符串类型

3.@TableField注解

1、主要用来解决实体类的字段名与数据库中的字段名不匹配的问题(数据库user_addr,字段useraddr未驼峰)

2、实体类中的属性字段在表中不存在的问题

3、表示自动填充字段一般用于字段名

属性类型必须指定默认值描述
valueString""数据库字段名
existbooleantrue是否为数据库表字段
conditionString""字段 where 实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的 %s=#{%s},参考(opens new window)
updateString""字段 update set 部分注入,例如:当在version字段上注解update="%s+1" 表示更新时会 set version=version+1 (该属性优先级高于 el 属性)
insertStrategyEnumFieldStrategy.DEFAULT举例:NOT_NULLinsert into table_a(<if test="columnProperty != null">column</if>) values (<if test="columnProperty != null">#{columnProperty}</if>)
updateStrategyEnumFieldStrategy.DEFAULT举例:IGNOREDupdate table_a set column=#{columnProperty}
whereStrategyEnumFieldStrategy.DEFAULT举例:NOT_EMPTYwhere <if test="columnProperty != null and columnProperty!=''">column=#{columnProperty}</if>
fillEnumFieldFill.DEFAULT字段自动填充策略
selectbooleantrue是否进行 select 查询
keepGlobalFormatbooleanfalse是否保持使用全局的 format 进行处理
jdbcTypeJdbcTypeJdbcType.UNDEFINEDJDBC 类型 (该默认值不代表会按照该值生效)
typeHandlerClass<? extends TypeHandler>UnknownTypeHandler.class类型处理器 (该默认值不代表会按照该值生效)
numericScaleString""        指定小数点后保留的位数

4.@TableLogic注解

逻辑删除注解: 一般用于项目中的逻辑删除字段上添加该注解

效果:在字段上加上这个注解再执行BaseMapper的删除方法时,删除方法会变成修改

执行是效果:      

@TableLogic注解参数:     

5.@EnumValue注解

注:mp框架对枚举进行处理的一个注解

使用场景:创建枚举类,在需要存储数据库的属性上添加@EnumValue注解

代码展示

public enum SexEnum {
 MAN(1, "男"),
 WOMAN(2, "女");
 @EnumValue
 private Integer key;
}

三.项目中用到其他的注解 

1.@JsonFormat注解

Jackson依赖

  <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.11.2</version>
  </dependency>

注: 是Jackson提供注解

导包: 

import com.fasterxml.jackson.annotation.JsonFormat;

作用:日期格式化注解,方便前段解析,通常日期格式都是以时间戳的形式存放在数据库里,当前端页面通过接口查询时,我们会将一个对象的某些属性查出来返回给页面。

格式:

@JsonFormat(pattern = “yyyy-MM-dd'T'HH:mm:ss”, locale = “zh”, timezone = “GMT+8”)

属性:

2.@JsonIgnore注解

注: 是Jackson提供注解

导包:

import com.fasterxml.jackson.annotation.JsonIgnore;

作用:在json序列化时将java Bean中的一些属性忽略掉,标记在属性或者方法上,返回的json数据即不包含该属性。

3.@JsonTypeId注解

作用:属性注解用来表示属性值应该作为Type Idfor对象使用,而不是使用类名或外部类型名。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文