Bean的本意为豌豆、子实,在这里引申为一种实体。JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。
一.实体类
有一个很流行的说法是:Mybatis是一种优秀的持久层框架。那么何为持久?我们在存储普通的数据时,变量、集合、数组都可以存,不过上述几者全是保存在内存中,内存中的数据特点为转瞬即逝。因此不难理解,所谓的持久层就是数据库相关。
实体类必须满足的特点:
- 成员变量必须私有
- get方法和set方法必须实现
- 存在无参数的构造器~
- 一个用来保存数据的Java类,可以用其创建对象保存某个事物的数据
二.POJO与JavaBean的区别
POJO(Plain Old Java Object)即普通老式Java对象,没有任何限制、约束或继承关系。通常用于表示一些简单的数据模型或对象。Java Bean与前者略有不同,其特点就是支持业务逻辑的协助类。
Java Bean需要满足如下条件:
- 类必须是公共的,并且具有一个公共的无参数构造函数
- 所有属性都应该是私有的,并且通过公共的getter/setter方法来访问和修改属性的值。
- 根据需要可以实现其他接口
总的来说,区别如下:
- POJO是比javabean更纯净的简单类或接口。POJO严格地遵守简单对象的概念,而JavaBean中往往会封装一些简单的逻辑。
- POJO主要用于数据的传递。它 作为数据存储的载体只能装载数据,而不具有业务逻辑处理的能力。
- 虽然Javabean可以向POJO一样获取数据,但是Javabean当中可以有其它的方法。
如下是之前项目里一个pojo的典例:
package pojo;
public class User {
private Integer id;
private String username;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
JavaBean其实和前者的写法大差不差,但是必须包含如下两者:
空参构造:
public User(){}
实参构造:
public User(Integer id,String username,String password) {
this.id=id;
this.password=password;
this.username=username;
}
实际上pojo很少使用了,多数开发的目前使用javaBean作为dao层~