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层~

相关推荐
咖啡八杯5 分钟前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
十五喵源码网12 分钟前
基于springboot2+vue2的租房管理系统
java·毕业设计·springboot·论文笔记
摇滚侠12 分钟前
IDEA 创建 Java 项目 手动整合 SSM 框架
java·ide·intellij-idea
源分享13 分钟前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Flittly20 分钟前
【AgentScope Java新手村系列】(10)实战-多Agent天气助手
java·spring boot·spring
张不才27 分钟前
一个静默吞数据的时间戳陷阱
后端
李少兄28 分钟前
从原理到实战:Spring IoC/DI 核心知识体系与高频面试题全解
java·后端·spring
ServBay31 分钟前
ServBay 1.30.0 更新:双平台引入 MCP 服务,AI 编程助手成为全栈本地运维
后端·ai编程
飞天狗1111 小时前
零基础JavaWeb入门——第五课第二小节:九大内置对象 · 第2个:response(响应对象)
java·开发语言
张不才1 小时前
分页查出来的数据总少几条?可能是 MyBatis 后置过滤的坑
后端