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

相关推荐
virus59456 小时前
悟空CRM mybatis-3.5.3-mapper.dtd错误解决方案
java·开发语言·mybatis
计算机毕设VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
没差c7 小时前
springboot集成flyway
java·spring boot·后端
三水不滴7 小时前
Redis 过期删除与内存淘汰机制
数据库·经验分享·redis·笔记·后端·缓存
时艰.7 小时前
Java 并发编程之 CAS 与 Atomic 原子操作类
java·开发语言
编程彩机8 小时前
互联网大厂Java面试:从Java SE到大数据场景的技术深度解析
java·大数据·spring boot·面试·spark·java se·互联网大厂
笨蛋不要掉眼泪8 小时前
Spring Boot集成LangChain4j:与大模型对话的极速入门
java·人工智能·后端·spring·langchain
Yvonne爱编码8 小时前
JAVA数据结构 DAY3-List接口
java·开发语言·windows·python
像少年啦飞驰点、9 小时前
零基础入门 Spring Boot:从“Hello World”到可上线微服务的完整学习指南
java·spring boot·微服务·编程入门·后端开发
眼眸流转9 小时前
Java代码变更影响分析(一)
java·开发语言