Heim > Java > javaLernprogramm > DTO & DAO in der Softwareentwicklung

DTO & DAO in der Softwareentwicklung

Barbara Streisand
Freigeben: 2025-01-09 22:10:41
Original
788 Leute haben es durchsucht

DTO & DAO in Software Development

DTO (Data Transfer Object) und DAO (Data Access Object) sind wichtige Entwurfsmuster, die häufig in der Softwareentwicklung verwendet werden, insbesondere in Java-basierten Anwendungen. Hier ist eine Erklärung zu jedem einzelnen und wie sie zusammenhängen:


DTO (Data Transfer Object):

Zweck: DTO ist ein einfaches Objekt, das zum Übertragen von Daten zwischen Schichten oder Prozessen in einer Anwendung entwickelt wurde.

Anwendungsfall: Es wird häufig verwendet, um Daten auf eine Weise zu kapseln, die die Anzahl der Methodenaufrufe minimiert (durch Bündelung verwandter Daten) und sicherstellt, dass sich darin keine unnötige Geschäftslogik befindet.

Eigenschaften:

Enthält Felder zum Speichern von Daten.

Keine Geschäftslogik oder Methoden außer Getter und Setter.

Kann für Netzwerkkommunikation oder API-Antworten serialisiert werden.

Beispiel für DTO:

öffentliche Klasse UserDTO {
privater String-Benutzername;
private String-E-Mail;

// Constructor
public UserDTO(String username, String email) {
    this.username = username;
    this.email = email;
}

// Getters and setters
public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}
Nach dem Login kopieren

}


DAO (Data Access Object):

Zweck: DAO ist für die Interaktion mit der Datenbank verantwortlich. Es bietet Methoden zum Ausführen von CRUD-Vorgängen (Erstellen, Lesen, Aktualisieren, Löschen) an einer Datenquelle und abstrahiert die Persistenzlogik.

Anwendungsfall: Es trennt die Datenbankoperationen von der Geschäftslogik und befolgt dabei das Prinzip der Einzelverantwortung.

Eigenschaften:

Kapselt SQL-Abfragen oder ORM-Logik (wie Hibernate, JPA).

Schnittstellen zur Datenbankschicht.

Bietet wiederverwendbare Methoden wie save(), findById(), delete() usw.

Beispiel für DAO:

java.sql.Connection importieren;
import java.sql.PreparedStatement;
importiere java.sql.ResultSet;

öffentliche Klasse UserDAO {
private Verbindungsverbindung;

public UserDAO(Connection connection) {
    this.connection = connection;
}

public UserDTO getUserById(int id) throws Exception {
    String query = "SELECT username, email FROM users WHERE id = ?";
    PreparedStatement statement = connection.prepareStatement(query);
    statement.setInt(1, id);
    ResultSet resultSet = statement.executeQuery();

    if (resultSet.next()) {
        String username = resultSet.getString("username");
        String email = resultSet.getString("email");
        return new UserDTO(username, email);
    }
    return null;
}

public void saveUser(UserDTO user) throws Exception {
    String query = "INSERT INTO users (username, email) VALUES (?, ?)";
    PreparedStatement statement = connection.prepareStatement(query);
    statement.setString(1, user.getUsername());
    statement.setString(2, user.getEmail());
    statement.executeUpdate();
}
Nach dem Login kopieren

}


Integration:

In einer Anwendung ruft ein DAO Daten aus der Datenbank ab, konvertiert sie in DTO-Objekte und sendet diese an andere Schichten (wie Dienste oder Controller).

Beispielablauf:

  1. Controller-Schicht: Ruft die Service-Schicht auf.

  2. Dienstschicht: Interagiert mit dem DAO, um Daten abzurufen oder zu speichern.

  3. DAO-Schicht: Ruft Daten ab, wandelt sie in DTO um und gibt sie zurück.

Codebeispiel:

// Controller
public UserDTO getUserDetails(int id) {
return userService.getUserById(id);
}

// Service
öffentliches UserDTO getUserById(int id) {
return userDAO.getUserById(id);
}


Vorteile:

DTO: Optimiert die Datenübertragung und entkoppelt UI- oder externe API-Antworten von internen Entitäten.

DAO: Zentralisiert die Datenbankzugriffslogik und macht sie wiederverwendbar und testbar.

Lassen Sie mich wissen, wenn Sie eine ausführlichere Erklärung oder Beispiele wünschen!

Das obige ist der detaillierte Inhalt vonDTO & DAO in der Softwareentwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage