DTO 实现 service 和 controller 之间值传递的操作

 更新时间:2021年02月22日 11:46:00   作者:延迟满足  
这篇文章主要介绍了DTO 实现 service 和 controller 之间值传递的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

概念

DTO( Data Transfer Object):

数据传输对象,Service 或 Manager 向外传输的对象。

BO:business object 业务对象。主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。比如一个简历,有教育经历、工作经历、社会关系等等。我们可以把教育经历对应一个 PO,工作经历对应一个 PO,社会关系对应一个 PO。建立一个对应简历的 BO 对象处理简历,每个 BO 包含这些 PO。这样处理业务逻辑时,我们就可以针对 BO 去处理。

VO( View Object):

显示层对象,通常是 Web 向模板渲染引擎层传输的对象。

POJO( Plain Ordinary Java Object):

在阿里巴巴编程手册中, POJO 专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。

DTO 实例代码

/**
 * 封装执行后结果
 */
public class PersonInfoExecution {
	// 结果状态
	private int state;
	// 状态标识
	private String stateInfo;
	// 店铺数量
	private int count;
	// 操作的personInfo(增删改店铺的时候用)
	private PersonInfo personInfo;
	// 获取的personInfo列表(查询店铺列表的时候用)
	private List<PersonInfo> personInfoList;
	public PersonInfoExecution() {
	}
	// 失败的构造器
	public PersonInfoExecution(PersonInfoStateEnum stateEnum) {
		this.state = stateEnum.getState();
		this.stateInfo = stateEnum.getStateInfo();
	}
	// 成功的构造器
	public PersonInfoExecution(PersonInfoStateEnum stateEnum,
			PersonInfo personInfo) {
		this.state = stateEnum.getState();
		this.stateInfo = stateEnum.getStateInfo();
		this.personInfo = personInfo;
	}
	// 成功的构造器
	public PersonInfoExecution(PersonInfoStateEnum stateEnum,
			List<PersonInfo> personInfoList) {
		this.state = stateEnum.getState();
		this.stateInfo = stateEnum.getStateInfo();
		this.personInfoList = personInfoList;
	}
	
	//get set......
}

补充:springBoot框架中几个层(dto、dao、service、controller)之间的关系

可以这样理解:

controller层-----> service层(接口—>接口实现类) -----> dao层的.mapper文件 -----> 和mapper层里的.xml文件对应

Model层 是数据层:

TableName是对数据表实体的映射;

Criteria传输前台数据

DTO 传输类间数据

Mapper层 放置SQL查询XML文件

Dao层 相当于XML文件的抽象类

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Java动态规划之丑数问题实例讲解

    Java动态规划之丑数问题实例讲解

    这篇文章主要介绍了Java动态规划之丑数问题实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • Mybatis中如何设置sqlSession自动提交

    Mybatis中如何设置sqlSession自动提交

    在MyBatis中,默认情况下,获取的SqlSession对象不会自动提交事务,这意味着在进行更新、删除或插入等操作后,需要显式调用commit方法来提交事务,但是,可以在获取SqlSession时通过将openSession方法的参数设置为true
    2024-09-09
  • Java如何实现单链表的增删改查

    Java如何实现单链表的增删改查

    这篇文章主要给大家介绍了关于Java如何实现单链表的增删改查的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • spring-retry简单使用方法

    spring-retry简单使用方法

    这篇文章主要介绍了spring-retry简单使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Java Scala泛型(泛型方法,泛型类,泛型特质,上下界,协变、逆变、非变)

    Java Scala泛型(泛型方法,泛型类,泛型特质,上下界,协变、逆变、非变)

    泛型的意思是泛指某种具体的数据类型, 在Scala中, 泛型用[数据类型]表示. 在实际开发中, 泛型一般是结合数组或者集合来使用的,这篇文章主要介绍了Scala泛型(泛型方法,泛型类,泛型特质,上下界,协变、逆变、非变),需要的朋友可以参考下
    2023-04-04
  • Java excel数据导入mysql的实现示例详解

    Java excel数据导入mysql的实现示例详解

    今天教大家如何使用Java将excel数据导入MySQL,文中有非常详细的代码示例,对正在学习java的小伙伴呢很有帮助,需要的朋友可以参考下
    2022-08-08
  • Java 事务注解@Transactional回滚(try catch、嵌套)问题

    Java 事务注解@Transactional回滚(try catch、嵌套)问题

    这篇文章主要介绍了Java @Transactional回滚(try catch、嵌套)问题,Spring 事务注解 @Transactional 本来可以保证原子性,如果事务内有报错的话,整个事务可以保证回滚,但是加上try catch或者事务嵌套,可能会导致事务回滚失败
    2022-08-08
  • 一文带你搞懂Java中的递归

    一文带你搞懂Java中的递归

    这篇文章主要为大家详细介绍了Java中的递归的实现以及应用,文中的示例代码讲解详细,对我们学习Java有一定帮助,需要的可以参考一下
    2022-10-10
  • JVM jstack实战之死锁问题详解

    JVM jstack实战之死锁问题详解

    如果在生产环境发生了死锁,我们将看到的是部署的程序没有任何反应了,这个时候我们可以借助 jstack进行分析,下面我们实战操作查找死锁的原因
    2022-10-10
  • 阿里云OSS域名配置及简单上传的示例代码

    阿里云OSS域名配置及简单上传的示例代码

    这篇文章主要介绍了阿里云OSS域名配置及简单上传的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论