这篇文章主要来谈论一下DTO使用的场合及其带来的好处。首先要理解DTO是什么?

DTO就是数据传输对象(Data Transfer Object)的缩写。DTO模式,是指将数据封装成普通的JavaBeans,在J2EE多个层次之间传输。   DTO类似信使,是同步系统中的Message。  该JavaBeans可以是一个数据模型Model。    

在传统的编程中,我们一般都是前台请求数据,发送到Webservice,然后WebService向数据库发出请求,获取数据,然后一层层返回;模型如下:

QQ截图20140320170753

这种比较原始的请求方式带来的缺点有很多,多次请求耗费一定的网络资源,减慢效率。如果一次性返回整个实体类,还可能造成数据库表结构的泄漏。

采用DTO模型之后,整个流程就不一样了:

QQ截图20140320171127

这样带来的好处有:

1.依据现有的类代码,即可方便的构造出DTO对象,而无需重新进行分析。

2.减少请求次数,大大提高效率。

3.按需组织DTO对象,页面需要的字段我才组织,不需要的我不组织,可以避免传输整个表的字段,一定程度上提高了安全性。

结合个人的开发经验来谈一下用法:

       一般我们使用DTO类来继承entity实体类,在DTO类里放一些业务字段,并提供get、set方法。当我们在业务逻辑层或者交互层用到一些数据库中不存在的字段时,我们就需要在DTO类里放这些字段,这些字段的意义就相当于一些经处理过的数据库字段,实质意义就是方便数据交互,提高效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/451466.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/451466.shtml
英文地址,请注明出处:http://en.pswp.cn/news/451466.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图解CPU发展史

随着科学技术和人们对物质水平要求的不断提高,CPU作为电脑的核心组件,也发生了翻天覆地的变化,从1971年只有2300颗晶体管的Intel 4004微处理器到现在的以亿为单位的Intel i7处理器,科技发展的步伐从未停止,随着对原有技…

1031 查验身份证

题目链接&#xff1a;https://pintia.cn/problem-sets/994805260223102976/problems/994805290334011392 题解&#xff1a; 1 #include <iostream>2 #include<cstdio>3 #include<string>4 using namespace std;5 6 int main() {7 int weigth[] { 7,9,10…

漫谈程序员系列:一张图道尽程序员的出路

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 《推背图》相传由唐太宗时期的司天监李淳风和袁天罡合著&#xff08;此两人其实是超级武学高手&#xff0c;参见小椴的《开唐》&#xf…

使用@Order调整配置类加载顺序

4.1 Order Spring 4.2 利用Order控制配置类的加载顺序 4.2 演示 两个演示bean package com.wisely.spring4_2.order;public class Demo1Service {}package com.wisely.spring4_2.order;public class Demo2Service {}两个配置类,注意Order配置加载的顺序 package com.wisely.…

[php] 高级教程

include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码。 include 和 require 除了处理错误的方式不同之外&#xff0c;在其他方面都是相同的&#xff1a; require 生成一个致命错误&#xff08;E_COMPILE_ERROR&#xff09;&#xff0c;在错误发生后脚本会停止…

常见电脑字符编码总结

一 、背景知识1、计算机中所有的数据都用01串来表示&#xff0c;至于一串01到底代表什么是由软件来设定的。比如&#xff1a;01111101111101010111110111110101 可以理解为一条指令&#xff0c;也可以理解为4个字节的char字符&#xff0c;具体是什么要看这个数据是在代码段还…

jsp+easyui+DataGrid 例子

转自:https://blog.csdn.net/l3922768721/article/details/51597977 导入js和css <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <% taglib uri"http://java.sun.com/jsp/jstl/core"…

@Pointcut的用法

Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的.Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合. args()args()execution()this()target()target()within()within()annotation其中execution 是用的最多的…

restful风格使用小例

1. 页面传参数写法&#xff1a; http://write.blog.csdn.net/ 参数1 / 参数2 / 参数N restful风格是把参数 直接拼在 / 后面&#xff0c;而不是URL地址重写方式。 2. 后台接收用法&#xff1a;

Mac 10.12彻底关闭Dashboard

1、打开【系统偏好设置】。 2、点击进入【Mission Control】。 3、中间有一项【Dashboard】&#xff0c;点击它右边的下拉菜单&#xff0c;选择【关闭】&#xff0c;即可。 转载于:https://www.cnblogs.com/EasonJim/p/9547489.html

BHO插件操作IE浏览器,js调用C#方法

BHO是IE浏览器的扩展程序&#xff0c;全名Browser Helper Object&#xff0c;文件格式为DLL文件。可对IE浏览器的界面和访问内容进行修改操作。BHO只适用于IE浏览器&#xff0c;对其他任何浏览器都没有作用。&#xff08;引用自百度百科>_<&#xff09; 本示例实现的功能…

多线程读取文件File

Java代码 import java.io.*; class DownThread extends Thread { //定义字节数组&#xff08;取水的竹筒&#xff09;的长度 private final int BUFF_LEN 32; //定义读取的起始点 private long start; //定义读取的结束点 private long end; …

LeetCode-----翻转二叉树

题目——翻转二叉树 翻转一棵二叉树。 示例&#xff1a; 输入&#xff1a; 4/ \2 7/ \ / \ 1 3 6 9 输出&#xff1a; 4/ \7 2/ \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 &#xff1a; 谷歌&#xff1a;我们90&#xff05;的工…

JAVA中字符串比较equals()和equalsIgnoreCase()的区别

1、使用equals( )方法比较两个字符串是否相等。它具有如下的一般形式&#xff1a; boolean equals(Object str) 这里str是一个用来与调用字符串&#xff08;String&#xff09;对象做比较的字符串&#xff08;String&#xff09;对象。如果两个字符串具有相同的字符和长度&…

Spring Boot 是什么,有什么用。

见&#xff1a;http://www.csdn.net/article/a/2016-05-12/15838098 maven/Java/web/bootstrap/dataTable/app开发QQ群&#xff1a;566862629。希望更多人一起帮助我学习。 首先&#xff0c;我们来看一下spring boot是什么&#xff0c;它帮助我们解决了哪些问题&#xff1a; …

纯html5+css3能写出什么惊人效果?

在搞清楚这个问题之前,我们得先弄清楚H5和css3有哪些惊人的特性首先我们来看下H5的新特性,canvas标签,多媒体标签(audio/video) 离线存储, 新的表单元素, 新的表单控件 地理定位等等,要说道惊人效果,其中canvas audio video 还有地理定位等就可以够玩一年 但题目中的一个纯字,一…

FPGA数据传输模块设计

摘要 FPGA适合于大量数据处理的应用&#xff0c;广泛应用于嵌入式系统。本文设计的FPGA模块需要对GPS、便携打印机和串口数据进行处理&#xff0c;将详细介绍如何设计FPGA和不同外设之间的数据传输。同时&#xff0c;在RTL编码中&#xff0c;编写使综合与布局布线效果更佳的代码…

java获取当前时间戳的方法

获取当前时间戳 //方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); //方法 三 new Date().getTime(); 获取当前时间 SimpleDateFormat df new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 String date df.…

解决Linux 忘记root 密码的办法

今天突然遇到一个问题&#xff0c;那别人的 linux 系统发现root 密码竟然不知道&#xff0c;这就尴尬了。经过一番百度&#xff0c;记录下 如何修改root 密码 1&#xff1a;开机linxu 按E 键 2&#xff1a;继续按E 键 3:选择 kernel..... 按E 4&#xff1a;在rhgb quiet 后面加…

tomcat的class加载的优先顺序

来源&#xff1a;https://bbs.csdn.net/topics/80459833Tomcat的class加载的优先顺序一览 最先是$JAVA_HOME/jre/lib/ext/下的jar文件。环境变量CLASSPATH中的jar和class文件。\$CATALINA_HOME/common/classes下的class文件。\$CATALINA_HOME/commons/endorsed下的jar文件。\$C…