JavaBean是什么?

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的典例:

java 复制代码
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其实和前者的写法大差不差,但是必须包含如下两者:

空参构造:

java 复制代码
public User(){}

实参构造:

java 复制代码
    public User(Integer id,String username,String password) {
        this.id=id;
        this.password=password;
        this.username=username;
    }

实际上pojo很少使用了,多数开发的目前使用javaBean作为dao层~

相关推荐
自由鬼12 分钟前
正向代理服务器Squid:功能、架构、部署与应用深度解析
java·运维·服务器·程序人生·安全·架构·代理
喷火龙8号40 分钟前
MSC中的Model层:数据模型与数据访问层设计
后端·架构
5ycode44 分钟前
dify项目结构说明与win11本地部署
后端·开源
LaoZhangAI1 小时前
GPT-image-1 API如何传多图:开发者完全指南
前端·后端
fouryears_234171 小时前
深入拆解Spring核心思想之一:IoC
java·后端·spring
codervibe1 小时前
从 0 到 1,我如何独立开发一套教务系统(EduCore)
后端
error_cn1 小时前
podman安全性设置
后端
一个热爱生活的普通人1 小时前
Go 泛型终极指南:告别 interface{},写出更安全、更强大的代码!
后端·go
求知摆渡1 小时前
从零开始搭建typecho
前端·后端
极客悟道1 小时前
彻底搞懂Java值传递:90%开发者都会踩的坑
前端·后端