首页 > 编程语言 >Java 开发的概念和分层 DTO、TO、VO、PO、DO、BO、AO、DAO、POJO

Java 开发的概念和分层 DTO、TO、VO、PO、DO、BO、AO、DAO、POJO

时间:2023-11-30 11:15:02浏览次数:27  
标签:DO DAO DTO transfer Object POJO param new UserTO

POJO

  • POJO(Plain Ordinary Java Object)
  • POJO 专指只有 setter/getter/toString 的简单类,包括 DO/DTO/BO/VO
  • Bean 就是符合规约的 POJO

AO(Application Object)

  • AO(Application Object Service 层上 服用多个服务
  • 例如一个 Controller 需要使用多Service 组装一个 AO

DTO

  • DTO(Data Transfer Object)数据传输对象
  • Controller 中使用接受参数 和返回值
@RestController
public class UserController {

    @PostMapping("findUserList")
    public AjaxJson findUserList(@RequestBody PageDTO pageDTO) {

        // dto   data translate  接受外部数据
        UserTO param = new UserTO();
        param.setPageNum(pageDTO.getPageNum());
        param.setPageSize(pageDTO.getPageSize());
        param.setUsername(pageDTO.getKeywords());

        // to  translate  传输对象传入到服务层
        UserServiceImpl userService = new UserServiceImpl();
        UserTO transfer = userService.findUserList(param);

        // vo  view  传回视图层
        UserVO view = new UserVO();
        view.setTransfer(transfer);

        //  返回的形式
        AjaxJson result = new AjaxJson();
        result.addJson(view);
        return result;
    }

}
  

TO

  • TO(Transfer Object)传输对象
  • Service 中使用接受参数 和返回值
public class UserServiceImpl implements UserServices {


    // DAO(Data Access Object)   数据访问对象  MpUserMapper就是一个DAO
    @Resource
    private MpUserMapper mpUserMapper;

    @Resource
    private MpUserInfoMapper mpUserInfoMapper;

    @Override
    public UserTO findUserList(UserTO transfer) {

        // po  persistent    持久化对象   通常对应一个数据表
        // do  domain        领域对象
        UserPO user = new UserPO();
        UserInfoPO userInfo = new UserInfoPO();

        //  bo business  业务对象  通常一个业务需要查询多个表 也就是多个 po
        UserBO business = new UserBO();
        business.setUser(user);
        business.setUserInfo(userInfo);
        List<UserBO> businesses = new ArrayList<>();
        businesses.add(business);

        // to  transfer对象 
        transfer.setDataList(businesses);

        return transfer;
    }
}

标签:DO,DAO,DTO,transfer,Object,POJO,param,new,UserTO
From: https://www.cnblogs.com/guanchaoguo/p/17866767.html

相关文章

  • Docker的常用命令
    Docker的常用命令主要包括以下几类:Docker进程:启动Docker服务:dockerstart关闭Docker服务:dockerstop重启Docker服务:dockerrestart镜像操作:查看镜像列表:dockerimages从镜像仓库中检索镜像:dockersearchxxx下载镜像:dockerpullxxx删除镜像:dockerrmixxx通过容......
  • P2495 [SDOI2011] 消耗战
    题意给定一棵有边权的无根树。\(q\)次询问,每次询问\(k\)个点。求断边使得根节点\(1\)与\(k\)个点不连通的最小边权。Sol虚树。\(n^2\)dp是trivial的。考虑优化。注意到其中很多点都是无用的。考虑保留有效点。不难发现,有效点集为询问点两两\(lca\)的集合......
  • FPGA入门笔记007_A——按键消抖模块设计与验证(状态机、$random、仿真模型、task语法)
    实验现象:每次按下按键0,4个LED显示状态以二进制加法格式加1。每次按下按键1,4个LED显示状态以二进制加法格式减1。知识点:1、testbench中随机数发生函数$random的使用;2、仿真模型的概念1、按键波形分析:按键未按,FPGA管脚检测到高电平。按键按下,FPGA管脚检测到低电平。2、设......
  • Windows下读文件二进制模式和文本模式的区别
    前段时间,碰到了一个奇怪的事情,我实现了一个读某文件的类,原本这个文件是以二进制写的,读的时候没太在意,将模式少写了一个“b”,变成了文本模式_tfopen_s(&pFile,m_file,_T("r"))测试了好些文件都没有问题,直到有一天,一同事反应读取函数有问题,数据被截断了。我看了半天,百思不得其......
  • 使用Win-ACME在Windows+iis服务器下配置自动续期SSL证书
    使用Win-ACME在Windows+iis服务器下配置自动续期SSL证书 由于网站建设和小程序开发等都需要https,但是ssl证书有过期的限制,如果没有及时续期ssl证书,那么将会影响线上程序正常运行,因此我便找了很多可以在windows服务器下使用的自动续期证书的工具。win-acme,github地址:https:/......
  • C++随机数random库 介绍及应用
    一、摘要随机数可以应用在很多场景下如游戏抽卡、抽奖、场景生成、洗牌,歌曲app中的随机播放,社交app中的匹配等以及随机化算法。以下是针对C中随机函数rand、C++random库使用的总结,以及一些随机应用例子二、C/C++中的rand函数使用时需要引入头文件<stdlib.h>该函数返回一个......
  • Windows XP
    WindowsXPhttps://baike.baidu.com/item/WindowsXP/191927密钥RT4H2-8WYHG-QKK6K-WWHJ2-9427Xxp系统安装产品密钥是什么windows批量许可证产品密钥http://www.caeworld.cn/win7jc/143347.html......
  • [English]phonetic/adoption/rote/nursery
    Phonetic describesthewaythatspokenwordssound.AdoptioncomesfromtheOldFrenchwordadoptare,meaning"tochoseforoneself.”Feellikeaddinganoption?Ifyoustartdressinglikeafriend,that'sanadoptionofyourfriend's......
  • CF1846E2 Rudolf and Snowflakes (hard version) 题解
    题意:\(T\)\((\)\(1\)\(\le\)\(T\)\(\le\)\(10^4\)\()\)组询问:是否存在一个满\(k\)(\(k\)\(\ge\)\(2\)\()\)叉树节点数恰好为\(n\)\((\)\(1\)\(\le\)\(n\)\(\le\)\(10^{18}\)\()\),且深度\(depth\)至少为\(2\)。思路:满$k$......
  • docker-compose.yml
    定义和配置三个服务:minio、mysql和generator//指定docker-compose的版本version:'3'services:minio:image:minio/minio:latest //定义minio镜像ports:-9000:9000 //映射端口environment: //设置环境-MINIO_ROOT_USER=minioadmin......