Springboot学习记录(关于注解和类)

 写代码时遇见不懂的我都会记录在这里,会引用一些文章,目的是用以自己复习,所以记录在这里。如有侵权,请及时联系我删除。

一、常见注解的意思以及作用

@MappedSuperclass:是JPA中的一个注解,用于指明该类是一个映射的超类。映射的超类类似1于普通的java类,但它不会被映射到数据库表中,而是作为其他实体类的基类,用于共享字段和方法。

详情:@MappedSupperClass 用法 - 小路亚 - 博客园 (cnblogs.com)

@EqualsAndHashCode(callSuper = false):是Lombok库中的一个注解,可以自动生成equals()方法和hashcode()方法。当callSuper=false时,表明生成的equals()方法和hashcode()方法只会比较你在当前类下声明的字段,若该类为子类,还有部分字段是来自于父类,则来自于父类的字段不会进行比较

@EqualsAndHashCode(callSuper = true):当callSuper=true时,表明生成的equals()方法和hashcode()方法不仅比较你在当前类下声明的字段,若该类为子类,还有部分字段是来自于父类,则来自于父类的字段同样会进行比较

二、关于java中PO、POJO、VO、BO、DAO

PO(Persistent Object)类:PO是持久化对象,用于表示数据库中的实体或表的映射,通常与数据库表的结构和字段对应,PO的属性对应数据库表的字段,可以进行持久化操作(新增、查询、更新、删除)。

POJO(Plain Old Java Object)类:POJO就是一个简单的java对象,没有特定的限制和约束,是普通的java类,不依赖于特定的框架和接口。

VO(View Object)类:VO是值对象,用于封装数据。通常是不可变的,用于传递数据而不包含业务逻辑。VO可以用于在不同层之间传递数据,如前端和后端之间。它的主要目的是将业务逻辑层的数据结构转换为视图层可以使用的数据结构,使得视图层可以直接使用VO中的数据,而无需进行任何转换。VO还可以用于应用程序的不同层之间进行数据传递,例如控制器层、服务层和持久层等。

BO(Business Object)类:BO是业务对象,用于封装业务逻辑和操作,包含与业务相关的方法和属性,用于实现业务规则和操作,BO通常与领域模型紧密相关,用于表示业务概念和业务流程

DAO(Data Access Object)类:DAO是数据访问对象,用于封装对数据库的访问操作,也就是我们常说的DAO层,提供对数据库的增删改查等操作的接口,DAO层可以隐藏底层数据库的具体实现细节,使得业务逻辑层和数据库解耦

例如:UserDao提供了对数据库表user的增删改查操作,这里的UserPO就是我们上面说的用来一一对应接收表中的字段

public interface UserDao {
    UserPO getById(Long id);
    void save(UserPO user);
    void delete(UserPO user);
    List<UserPO> findAll();
}

 来源链接:一文彻底弄懂Java中的PO、VO、BO、DO、DAO、DTO、POJO - 知乎 (zhihu.com)

 (有例子,解释的很清楚)

三、关于ObjectUtils的用法总结

来源:【常用工具类】ObjectUtils 全面总结 ,真的太方便了-CSDN博客

这里简单记录一下我暂时用到的:

1、isEmpty(Object obj)
检查对象是否为空。如果对象为null或者为空字符串、空数组、空Collection、空Map或者空Iterator,则返回true;否则返回false。

2、equals(Object object1, Object object2)
比较两个对象是否相等,可以处理null值,避免了NullPointerException的出现。

3、hashCode(Object obj)
计算对象的哈希码,可以处理null值。

有个问题,这里的处理null值是啥意思?看了源码,结果就是单纯把null返回了。。

4、toString(Object obj)
将对象转换为字符串。如果对象为空,则返回字符串"null"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值