java 深入了解DTO及如何使用DTO

這篇文章主要來談論一下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…