DTO 實現(xiàn) service 和 controller 之間值傳遞的操作
概念
DTO( Data Transfer Object):
數(shù)據(jù)傳輸對象,Service 或 Manager 向外傳輸?shù)膶ο蟆?/p>
BO:business object 業(yè)務(wù)對象。主要作用是把業(yè)務(wù)邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。比如一個簡歷,有教育經(jīng)歷、工作經(jīng)歷、社會關(guān)系等等。我們可以把教育經(jīng)歷對應一個 PO,工作經(jīng)歷對應一個 PO,社會關(guān)系對應一個 PO。建立一個對應簡歷的 BO 對象處理簡歷,每個 BO 包含這些 PO。這樣處理業(yè)務(wù)邏輯時,我們就可以針對 BO 去處理。
VO( View Object):
顯示層對象,通常是 Web 向模板渲染引擎層傳輸?shù)膶ο蟆?/p>
POJO( Plain Ordinary Java Object):
在阿里巴巴編程手冊中, POJO 專指只有setter/getter/toString的簡單類,包括DO/DTO/BO/VO等。
DTO 實例代碼
/** * 封裝執(zhí)行后結(jié)果 */ public class PersonInfoExecution { // 結(jié)果狀態(tài) private int state; // 狀態(tài)標識 private String stateInfo; // 店鋪數(shù)量 private int count; // 操作的personInfo(增刪改店鋪的時候用) private PersonInfo personInfo; // 獲取的personInfo列表(查詢店鋪列表的時候用) private List<PersonInfo> personInfoList; public PersonInfoExecution() { } // 失敗的構(gòu)造器 public PersonInfoExecution(PersonInfoStateEnum stateEnum) { this.state = stateEnum.getState(); this.stateInfo = stateEnum.getStateInfo(); } // 成功的構(gòu)造器 public PersonInfoExecution(PersonInfoStateEnum stateEnum, PersonInfo personInfo) { this.state = stateEnum.getState(); this.stateInfo = stateEnum.getStateInfo(); this.personInfo = personInfo; } // 成功的構(gòu)造器 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)之間的關(guān)系
可以這樣理解:
controller層-----> service層(接口—>接口實現(xiàn)類) -----> dao層的.mapper文件 -----> 和mapper層里的.xml文件對應
Model層 是數(shù)據(jù)層:
TableName是對數(shù)據(jù)表實體的映射;
Criteria傳輸前臺數(shù)據(jù)
DTO 傳輸類間數(shù)據(jù)
Mapper層 放置SQL查詢XML文件
Dao層 相當于XML文件的抽象類
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Java動態(tài)規(guī)劃之丑數(shù)問題實例講解
這篇文章主要介紹了Java動態(tài)規(guī)劃之丑數(shù)問題實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-09-09Mybatis中如何設(shè)置sqlSession自動提交
在MyBatis中,默認情況下,獲取的SqlSession對象不會自動提交事務(wù),這意味著在進行更新、刪除或插入等操作后,需要顯式調(diào)用commit方法來提交事務(wù),但是,可以在獲取SqlSession時通過將openSession方法的參數(shù)設(shè)置為true2024-09-09Java Scala泛型(泛型方法,泛型類,泛型特質(zhì),上下界,協(xié)變、逆變、非變)
泛型的意思是泛指某種具體的數(shù)據(jù)類型, 在Scala中, 泛型用[數(shù)據(jù)類型]表示. 在實際開發(fā)中, 泛型一般是結(jié)合數(shù)組或者集合來使用的,這篇文章主要介紹了Scala泛型(泛型方法,泛型類,泛型特質(zhì),上下界,協(xié)變、逆變、非變),需要的朋友可以參考下2023-04-04Java excel數(shù)據(jù)導入mysql的實現(xiàn)示例詳解
今天教大家如何使用Java將excel數(shù)據(jù)導入MySQL,文中有非常詳細的代碼示例,對正在學習java的小伙伴呢很有幫助,需要的朋友可以參考下2022-08-08Java?事務(wù)注解@Transactional回滾(try?catch、嵌套)問題
這篇文章主要介紹了Java?@Transactional回滾(try?catch、嵌套)問題,Spring?事務(wù)注解?@Transactional?本來可以保證原子性,如果事務(wù)內(nèi)有報錯的話,整個事務(wù)可以保證回滾,但是加上try?catch或者事務(wù)嵌套,可能會導致事務(wù)回滾失敗2022-08-08