实体类是POJO的其中一种
POJO:Plain Ordinary Java Object,简单的Java对象。
在项目中,如果某个类的作用就是声明若干个属性,并且添加Setter & Getter方法等,并不编写其它的功能性代码,这样的类都称之POJO,用于表示项目中需要处理的数据。
以pms_album
为例,这张数据表应该有与之对应的实体类,在数据表中的字段类型与Java中的属性的数据类型的对应关系是:
MySQL中的数据类型 | Java中的数据类型 |
---|---|
tinyint / smallint / int | Integer |
bigint | Long |
char / varchar / text 系列 | String |
datetime | LocalDateTime |
decimal | BigDecimal |
关于POJO类,其编写规范是:
-
所有属性都应该是私有的
-
所有属性都应该有对应的、规范名称的Setter、Getter方法
-
必须重写
equals()
和hashCode()
,并保证:-
如果两个对象的各属性值完全相同,则
equals()
对比结果为true
,且hashCode()
值相同 -
如果两个对象存在属性值不同的,则
equals()
对比结果为false
,且hashCode()
值不同 -
如果两个对象的
hashCode()
相同,则equals()
对比结果必须为true
-
如果两个对象的
hashCode()
不同,则equals()
对比结果必须为false
-
-
必须实现
Serializable
接口 -
建议重写
toString()
方法,输出各属性的值
在项目中使用Lombok框架,可以实现:添加注解,即可使得Lombok在项目的编译期自动生成一些代码(例如Setter & Getter)。
关于Lombok框架的依赖项:
<!-- Lombok的依赖项,主要用于简化POJO类的编写 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
在POJO类上添加Lombok框架的@Data
注解,可以在编译期生成:
-
规范的Setter & Getter
-
规范的
hashCode()
与equals()
-
包含各属性与值的
toString()
注意:当使用了Lombok后,由于源代码中并没有Setter & Getter方法,所以,当编写代码时,IntelliJ IDEA不会提示相关方法,并且,即使强行输入调用这些方法的代码,还会报错,但是,并不影响项目的运行!为了解决此问题,强烈推荐安装Lombok插件!