实体类的分层与事务应用

115 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情

一.实体类分层具体含义

  • VO: 视图对象,用于展示层,指把某个指定页面(或组件)需要的所有数据封装起来,通俗点讲就是一个自定义的、多个表的属性或字段的集合。
  • DTO:数据传输对象,用于展示层与业务层之间的数据传输对象
  • DO:领域对象,就是从现实世界中抽象出来的有形或无形的业务实体
  • PO:持久化对象,即实体类

image.png

二.事务应用

在 SpringBoot 中,声明式事务管理也有两种常用的方式,

  • 使用@Transactional 注解
  • 使用配置全局事务管理类。

其实只需要在类的上面添加@Tranctional 注解即可完成事务应用。 在需要事务管理的接口定义和接口方法、类定义和类的 public 方法上加@Transactional 注解

示例:

@Override
@Transactional
public String checkDone(Long[] ids) {
    //查询所有的订单 判断状态 修改状态和更新时间
    List<NewBeeMallOrder> orders = newBeeMallOrderMapper.selectByPrimaryKeys(Arrays.asList(ids));
    String errorOrderNos = "";
    if (!CollectionUtils.isEmpty(orders)) {
        for (NewBeeMallOrder newBeeMallOrder : orders) {
            if (newBeeMallOrder.getIsDeleted() == 1) {
                errorOrderNos += newBeeMallOrder.getOrderNo() + " ";
                continue;
            }...

就像这样

三.pojo

pojo(Plain Ordinary Java Object) :普通的Java对象,其实就是简单的JavaBean实体类。对应数据库里的某一张表,pojo里的每一个属性都和该表中的字段一一对应。

为什么会有pojo? 因为Java的开发者被EJB的繁杂搞怕了,大家经过反思,又回归“纯洁老式”的JavaBean,即有无参构造函数,每个字段都有getter和setter的java类。

POJO的意义就在于它的简单而灵活性,因为它的简单和灵活,使得POJO能够任意扩展,从而胜任多个场合,也就让一个模型贯穿多个层成为现实。
先写一个核心POJO,然后实现业务逻辑接口持久化接口,就成了Domain Model; UI需要使用时,就实现数据绑定接口,变成VO(View Object)