Heim  >  Artikel  >  Java  >  Implementieren Sie ORM-Mapping basierend auf Spring Boot und MyBatis Plus

Implementieren Sie ORM-Mapping basierend auf Spring Boot und MyBatis Plus

王林
王林Original
2023-06-22 21:27:42831Durchsuche

Im Entwicklungsprozess von Java-Webanwendungen wird die ORM-Mapping-Technologie (Object-Relational Mapping) verwendet, um relationale Daten in der Datenbank Java-Objekten zuzuordnen, was Entwicklern den Zugriff auf und die Bedienung von Daten erleichtert. Als eines der derzeit beliebtesten Java-Webentwicklungs-Frameworks bietet Spring Boot eine Möglichkeit zur Integration von MyBatis, und MyBatis Plus ist ein auf MyBatis basierendes ORM-Framework. In diesem Artikel wird erläutert, wie Sie Spring Boot und MyBatis Plus zum Implementieren der ORM-Zuordnung verwenden.

1. Spring Boot integriert MyBatis Plus
Die Verwendung von MyBatis Plus in Spring Boot ist sehr einfach, fügen Sie einfach die Abhängigkeit von MyBatis Plus zu Maven hinzu.

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.4.2</version>
</dependency>

Gleichzeitig konfigurieren Sie MyBatis Plus-bezogene Parameter in application.properties oder application.yml, wie unten gezeigt:

#数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
#MyBatis Plus配置
mybatis.configuration.cache-enabled=false
mybatis.mapper-locations=classpath:mapper/*.xml

Unter diesen sind Treiberklassenname, URL, Benutzername und Passwort datenbankbezogene Konfigurationen Mapper-Locations sind der Pfad, in dem sich die SQL-Mapping-Konfigurationsdatei von MyBatis Plus befindet.

2. Definieren Sie Entitätsklassen und Mapper-Schnittstellen
Wie bei MyBatis erfordert die Verwendung von MyBatis Plus auch die Definition von Entitätsklassen und Mapper-Schnittstellen. Im Folgenden wird eine einfache Benutzertabelle als Beispiel verwendet, um die entsprechende Entitätsklasse und Mapper-Schnittstelle zu definieren.

  1. Entitätsklassen definieren
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private Integer id;
    private String name;
    private Integer age;
    private String email;
    private Integer gender;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;

}

Die Verwendung der Annotationen @Getter, @Setter und @Builder kann den Code vereinfachen, während @NoArgsConstructor und @AllArgsConstructor zum Generieren von Konstruktoren ohne Parameter und mit vollständigen Parametern verwendet werden.

  1. Definieren Sie die Mapper-Schnittstelle
public interface UserMapper extends BaseMapper<User> {
}

Hier kommt der von MyBatis Plus bereitgestellte BaseMapper zum Einsatz, der viele mühsame SQL-Operationen ersparen kann.

3. Verwenden Sie MyBatis Plus für Datenbankoperationen
Nachdem Sie die Mapper-Schnittstelle definiert haben, können Sie MyBatis Plus für Datenbankoperationen verwenden.

  1. Daten einfügen
User user = User.builder()
        .name("test")
        .age(20)
        .email("test@test.com")
        .gender(1)
        .createTime(LocalDateTime.now())
        .updateTime(LocalDateTime.now())
        .build();
int count = userMapper.insert(user);

Beim Einfügen von Daten können Sie direkt die in der Mapper-Schnittstelle bereitgestellte Einfügemethode verwenden, und MyBatis Plus ordnet die Attribute der Entitätsklasse automatisch den entsprechenden Spalten in der Datenbank zu.

  1. Daten abfragen
List<User> userList = userMapper.selectList(null);

Beim Abfragen von Daten können Sie direkt die in der Mapper-Schnittstelle bereitgestellte selectList-Methode verwenden und null oder ein leeres QueryWrapper-Objekt übergeben, um alle Daten abzufragen. Darüber hinaus können Sie auch von MyBatis Plus bereitgestellte Lambda-Ausdrücke und Kettenoperationen verwenden, um komplexere Abfragen durchzuführen, wie unten gezeigt:

QueryWrapper<User> wrapper = Wrappers.<User>lambdaQuery()
        .eq(User::getGender, 1)
        .ge(User::getAge, 20)
        .orderByDesc(User::getCreateTime);
List<User> userList = userMapper.selectList(wrapper);

Im obigen Code wird ein QueryWrapper mithilfe von Wrappers definiert.4c8e0c17c3bd7e0081bb17cc795e1984lambdaQuery() Object, und erstellen Sie Abfragebedingungen und Sortierregeln durch .eq-, .ge- und .orderByDesc-Kettenoperationen.

  1. Daten aktualisieren
User user = userMapper.selectById(id);
user.setAge(30);
int count = userMapper.updateById(user);

Beim Aktualisieren von Daten können Sie zunächst die zu aktualisierenden Daten über selectById abfragen, dann die zu aktualisierenden Attribute ändern und updateById verwenden, um die geänderten Daten in der Datenbank zu aktualisieren.

  1. Daten löschen
int count = userMapper.deleteById(id);

Zum Schluss rufen Sie beim Löschen von Daten einfach die Methode deleteById auf, die in der Mapper-Schnittstelle bereitgestellt wird.

4. Fazit
In diesem Artikel wird erläutert, wie Sie mit Spring Boot und MyBatis Plus die ORM-Zuordnung implementieren und Datenbankoperationen durch einfache Konfiguration und Code erreichen können. MyBatis Plus kann als Erweiterungsframework von MyBatis die Arbeitsbelastung des Entwicklers erheblich vereinfachen und gleichzeitig die Lesbarkeit und Wartbarkeit des Codes verbessern. Aus Platzgründen wird in diesem Artikel nur die grundlegende Verwendung von MyBatis Plus vorgestellt. Weitere Informationen zu erweiterten Funktionen finden Sie in der offiziellen Dokumentation.

Das obige ist der detaillierte Inhalt vonImplementieren Sie ORM-Mapping basierend auf Spring Boot und MyBatis Plus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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