1. Entitätsklassen im Domänenmodell sind in vier Typen unterteilt: VO, DTO, DO, PO
1. Wird für die Präsentationsschicht verwendet und hat die Funktion, alle Daten einer bestimmten Seite (oder Komponente) zu kapseln.
2.DTO (Data Transfer Object), dieses Konzept stammt aus dem Entwurfsmuster von J2EE. Der ursprüngliche Zweck besteht darin, grobkörnige Datenentitäten für verteilte EJB-Anwendungen bereitzustellen, um die Anzahl verteilter Aufrufe zu reduzieren und dadurch die Leistung verteilter Anwendungen zu verbessern Anrufe und reduzieren die Netzwerklast, aber hier beziehe ich mich im Allgemeinen auf die Datenübertragungsobjekte zwischen der Präsentationsschicht und der Serviceschicht.
3.DO (Domain Object), Domänenobjekt, ist eine materielle oder immaterielle Geschäftseinheit, die von der realen Welt abstrahiert ist.
4.PO (PersistentObject), Persistenzobjekt, das eine Eins-zu-Eins-Zuordnungsbeziehung mit der Datenstruktur der Persistenzschicht (normalerweise eine relationale Datenbank) bildet. Wenn die Persistenzschicht eine relationale Datenbank ist, dann jedes Objekt in Die Datentabelle Ein Feld (oder mehrere) entspricht einem (oder mehreren) Attributen von PO.
5. Beispiel:
Das Backend gibt ein Front-End-Objekt zurück, Sie können ***VO.java
Das von mybatis generierte Dao-Tabellen-Entitätsobjekt können Sie***PO.java
Im Allgemeinen ist PO In DO konvertiert und dann in DTO konvertiert, stellt es Dienste für externe Anrufe bereit. und in einigen Projekten endet DO mit Model. Die Klasse
VO ist relativ einfach, definieren Sie einfach, was für das Front-End benötigt wird Anzeige
3. Konvertierung zwischen Entitätsobjekten
Ein standardisiertes Projekt
Der Code ist voll von VO, From, DTO, DO und anderen Pojo-Klassen, die unterschiedliche Funktionen haben, aber die Attributwerte in den Klassen sind oft genau die Dasselbe. Wenn es viele Attribute gibt, ist das Festlegen jedes einzelnen sehr ermüdend und zeitaufwändig. Tatsächlich hat der leistungsstarke Spring bereits durchdachte Tools für uns vorbereitet, um die vorherigen 30 Zeilen Code loszuwerden Codebeispiele der ersten Methode
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.1.6.RELEASE</version> </dependency>
2. Ein DTO (Schnittstellendefinitionsobjekte verwenden im Allgemeinen DTO)
public class TestDemoDTO{ private String name; private Map<String,String> citys; private Date gmtStart; private Boolean flag; private Integer age; private List<String> types; public String getName() { return name; } public void setName(String name) { this.name = name; } public Map<String, String> getCitys() { return citys; } public void setCitys(Map<String, String> citys) { this.citys = citys; } public Date getGmtStart() { return gmtStart; } public void setGmtStart(Date gmtStart) { this.gmtStart = gmtStart; } public Boolean getFlag() { return flag; } public void setFlag(Boolean flag) { this.flag = flag; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public List<String> getTypes() { return types; } public void setTypes(List<String> types) { this.types = types; } @Override public String toString() { return "TestDemoDTO{" + "name='" + name + '\'' + ", citys=" + citys + ", gmtStart=" + gmtStart + ", flag=" + flag + ", age=" + age + ", types=" + types + '}'; } }
3 5. Ergebnis Alter=18, Typen=[Ich liebe, Baby]}
TestDemoDTO{name='Versprechen', Städte={001=Peking, 002=Shanghai, 003=Guangzhou}, gmtStart=Fr 10. Mai 22:37:53 CST 2019 , flag=true, age=18,types=[I love, baby]}6. Hinweis
Achten Sie auf Zuweisungsfehler
Wenn die Attributnamen unterschiedlich sind, wird der Wert zugewiesen. NeinWenn die Typen unterschiedlich sind unterschiedlich und die Namen sind gleich, die Zuweisung funktioniert nicht
1 Abhängigkeiten importieren
rrree3 TestDemoFrom{name='Promise', states={001=Peking, 002=Shanghai, 003=Guangzhou}, gmtStart=Sat, 11. Mai 00:30:02 CST 2019, flag=true, age=18,types=[Ich liebe , Baby]}
TestDemoDTO{name='Versprechen', Städte={001=Peking, 002=Shanghai, 003=Guangzhou}, gmtStart=Sa. 11. Mai 00:30:02 CST 2019, flag=true, age=18, Typen=[Ich liebe, Baby]}Das obige ist der detaillierte Inhalt vonSo realisieren Sie die Konvertierung zwischen VO und DTO in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!