开发者

Java实体类常用注解的用法

目录
  • 一、属性赋值,构造方法
    • 1、@Data
    • 2、@NoAphprgsConstructor、@AllArgsConstructor
  • 二、数据库映射
    • 1、@TableName
    • 2、@TableId
    • 3、@TableField
  • 三、属性格式校验
    • 1、@NotNull
    • 2、@NotEmpty
    • 3、@Email
    • 4、@Pattern
  • 四、日期格式转换
    • 1、@Date编程timeFormat
    • 2、@jsonFormat(pattern=“yyyy-MM-dd”)
    • 3、@JsonFormat(pattern=“yyyy-MM-dd”,timezone=“GMT+8”)
  • 五、类/属性说明
    • 1、@ApiModel
    • 2、@ApiModelProperty
  • 总结

    在 Java 开发中,实体类(Entity Class)是表示数据结构的重要组成部分。为了方便地对实体类进行操作和管理,我们经常会使用一些注解来标记实体类的属性和方法。

    本文将介绍一些常用的 Java 实体类注解,并解释它们的作用和用法。

    一、属性赋值,构造方法

    引入依赖:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.4</version>
    </dependency>

    1、@Data

    是 Lombok 提供的注解,用于简化 Java 类的编写,自动生成 Getter、Setter、equals、hashCode、toString 等方法。@Data 注解包含以下注解的功能:

    1. @Getter:自动生成 Getter 方法。
    2. @Setter:自动生成 Setter 方法。
    3. @ToString:自动生成 toString 方法。
    4. @EqualsAndHashCode:自动生成 equals 和 hashCode 方法。

    使用 @Data 注解可以减少重复的样板代码,提高代码的简洁性和可读性。例如:

    @Data
    public class Person {
        private String name;
        private int age;
    }

    上述代码等效于手动编写了以下代码:

    public class Person {
        private String name;
        private int age;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        @Override
        public String toString() {
            return "Person{" +
                    http://www.devze.com"name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Person person = (Person) o;
            return age == person.age &&
                    Objects.equals(name, person.name);
        }
        @Override
        public int hashCode() {
            return Objects.hash(na编程客栈me, age);
        }
    }

    可以看到,使用 @Data 注解可以大大简化类的编写,减少了样板代码。

    2、@NoArgsConstructor、@AllArgsConstructor

    @NoArgsConstructor相当于无参构造方法、@AllArgsConstructor相当于有参构造方法

    二、数据库映射

    以上是myBATis-plus常用实体注解

    1、@TableName

    表名注解,标识实体类对应的表

    2、@TableId

    主键注解,与@TableField不能同时使用

    3、@TableField

    字段注解(非主键)

    使用:

    @TableName("student")
    public class Student{
        @TableId
        private String id;
        @TableField("stu_name")
        private String stuNamOPTjaMYe;
        @TableField("stu_age")
        private Integer stuAge;
        @TableField("birth_date")
        private Date birthDate;
    }

    三、属性格式校验

    1、@NotNull

    被注释的字段不能为空

    2、@NotEmpty

    被注释的字符串必须非空

    3、@Email

    被注释的元素必须是电子邮件地址

    4、@Pattern

    正则校验,例如:

    @Pattern(regexp="1\\d{10}",message="手机号格式错误")

    四、日期格式转换

    1、@DatetimeFormat

    将String转换成Date。

    2、@JsonFormat(pattern=“yyyy-MM-dd”)

    将Date转换成指定时间格式的String。

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    3、@JsonFormat(pattern=“yyyy-MM-dd”,timezone=“GMT+8”)

    会让时间以0区时间显示。

    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date createTime;

    五、类/属性说明

    1、@ApiModel

    用于实体类,表示对类进行说明,用于参数用实体类接收。

    2、@ApiModelProperty

    用于类中属性,表示对 属性的说明。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜