Java Bean 是一个很常见的概念,简单来说就是一个 Java 类,其中的内容就是各种属性,以及各个属性的
getter/setter 。例如:
class Student {
private String name;
private int age;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int setAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
}
除了 Java Bean 这样的概念之外还有很多类似和相关的概念,《码出高效——阿里巴巴Java开发手册》中就还有
DO、DTO、VO 的概念,另外,在更高级的建模领域还有 POJO、Entity、Value Object 的概念。
大概念上,上面的各种 O 都是 Java Bean 的具体情况,或者说是更细化的情况。在高级的程序员手里,实际上直接
去使用 Java Bean 的情况并不多,更多的情况是在不同地方使用不同的 O 。
在本片笔记中,我们就来看下各种 O 的概念、使用场景以及之间的异同。当然,实际上还不止上面这些 O,我们仅
介绍最常见的几种 Java Bean 。
1. DO / PO
DO,Database Object 数据库对象。由于单词 do 在 Java 中是关键字(do-while 循环),所以在有些地方会避免
使用 DO 这个称呼,转而叫它 PO,Persistence Object 持久化对象。我个人也倾向于叫它 PO 。
无论是赤裸裸地叫数据库对象,还是委婉地叫持久化对象,很显然,这个 O 的概念一定是和数据库有关系的。
简单来说,一个 DO 类是和一个数据库中的表一一对应的 。它也是我们最常见的一种 Java Bean 。无论我们的项目
的持久层框架使用的是 Mybatis 还是 JPA/Hibernate,我们的项目中一定会有 DO / PO 的身影。
理论上来说,不考虑故意不对外暴露的情况,你有多少张表,你就会有多少个 DO 类;你的表有多少个字段,你的
DO 类就会有多少个属性;你的表的字段是什么类型