Heim  >  Artikel  >  Java  >  So realisieren Sie die Konvertierung zwischen VO und DTO in Java

So realisieren Sie die Konvertierung zwischen VO und DTO in Java

PHPz
PHPznach vorne
2023-05-05 17:37:072586Durchsuche

    1. Hintergrund

    1. Entitätsklassen im Domänenmodell sind in vier Typen unterteilt: VO, DTO, DO, PO

    2. Detaillierte Erklärung

    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

    DTO ist beispielsweise die Webservice-Schnittstelle (die externe Dienste bereitstellt). Die Definition der darin enthaltenen Attribute ist sehr spezifisch, leicht zu verstehen, sicher und leicht zu erweitern. Ob die Beziehung zwischen DTO und DTO inklusiv oder parallel ist, muss während des Entwurfs klar definiert werden, sonst wird es in der späteren Phase eine Falle sein

    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

    1. Abhängigkeiten importieren

    <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=&#39;" + name + &#39;\&#39;&#39; +
                    ", citys=" + citys +
                    ", gmtStart=" + gmtStart +
                    ", flag=" + flag +
                    ", age=" + age +
                    ", types=" + types +
                    &#39;}&#39;;
        }
    }

    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. Nein

    Wenn die Typen unterschiedlich sind unterschiedlich und die Namen sind gleich, die Zuweisung funktioniert nicht

    1 Abhängigkeiten importieren

    rrree

    3 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!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen