Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie ORM in Golang

So verwenden Sie ORM in Golang

PHPz
PHPzOriginal
2023-04-11 09:10:43762Durchsuche

Golang ist eine kompilierte Sprache, die aufgrund ihrer guten Leistung von immer mehr Entwicklern bevorzugt wird. Mit der Entwicklung von Golang werden immer mehr Anwendungsszenarien abgedeckt, darunter Webentwicklung, Systemtools, Datenbanken usw. Unter anderem sind Datenbankoperationen auch zu einem festen Bestandteil der täglichen Arbeit von Golang-Entwicklern geworden. Im Datenbankbetrieb kann die Verwendung des ORM-Frameworks erheblich Zeit sparen und die Entwicklungseffizienz verbessern. Wie kann man also das ORM-Framework verwenden, um die Datenbank in Golang zu betreiben? Finden wir es heraus.

ORM (Object Relational Mapping) bezieht sich auf die Konvertierung von Daten in einer relationalen Datenbank in einen Satz objektorientierter Daten mithilfe von Metadaten, die Objekte und Beziehungen beschreiben und Datenbankoperationen in einer abstrakten Ebene kapseln , müssen wir uns während des Programmierprozesses nicht um die zugrunde liegenden SQL-Operationen kümmern, wodurch die Komplexität von Datenbankoperationen und Programmimplementierung vereinfacht wird.

Zu den derzeit beliebtesten ORM-Frameworks in Golang gehören: GORM, XORM, QBS usw. In diesem Artikel nehmen wir GORM als Beispiel, um die Verwendung des ORM-Frameworks in Golang im Detail vorzustellen.

1. Installieren Sie GORM

Bevor Sie GORM verwenden, müssen Sie die entsprechenden Abhängigkeitspakete installieren. Im Folgenden sind die Abhängigkeitspakete aufgeführt, die zur Verwendung von GORM installiert werden müssen:

go get -u github.com/jinzhu/gorm
go get -u github.com/jinzhu/gorm/dialects/mysql

Unter diesen wird das zweite Abhängigkeitspaket zum Herstellen einer Verbindung zur MySQL-Datenbank verwendet.

2. Stellen Sie eine Verbindung zur Datenbank her.

Bevor wir GORM zum Betreiben der MySQL-Datenbank verwenden, müssen wir zunächst eine Verbindung herstellen. In GORM können Sie über den folgenden Code eine Verbindung zur MySQL-Datenbank herstellen:

import (
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/mysql"
)

func main() {
    //连接MySQL数据库
    db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc=Local")
    if err != nil {
        panic("failed to connect database")
    }
    defer db.Close()
}

Im obigen Code stellen wir über die Funktion Open() eine Verbindung zur MySQL-Datenbank her, die den MySQL-Benutzernamen und das Passwort enthält , Datenbankname und andere Informationen. Es ist zu beachten, dass durch das Hinzufügen von „&charset=utf8&parseTime=True&loc=Local“ am Ende des Parameters sichergestellt werden kann, dass die UTF-8-Kodierung verwendet wird und das Parsen von Zeittypen unterstützt wird.

3. Definieren Sie die Struktur

Bei Verwendung des ORM-Frameworks müssen Sie die Struktur der Datenbanktabelle für die Zuordnung zu den Tabellen in der Datenbank definieren. Das Folgende ist ein Beispiel für eine Struktur, die eine Benutzertabelle definiert:

type User struct {
    gorm.Model
    Name string // 用户名
    Age  int    // 年龄
}

Durch den obigen Code werden mehrere Felder der Benutzertabelle Attributen der Struktur zugeordnet. Unter diesen ist „gorm.Model“ eine von GORM bereitgestellte Struktur, die die vier Felder „ID“, „CreatedAt“, „UpdatedAt“ und „DeletedAt“ implementiert. Diese vier allgemeinen Felder können einfach zu jeder Tabelle hinzugefügt werden.

4. Erstellen Sie eine Datentabelle

Nachdem Sie die Tabellenstruktur definiert haben, müssen Sie auch die entsprechende Datentabelle erstellen. In GORM können Sie die Funktion AutoMigrate() verwenden, um automatisch eine Datentabelle zu erstellen. Das Folgende ist ein Beispielcode:

func main() {
    //连接MySQL数据库
    db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc=Local")
    if err != nil {
        panic("failed to connect database")
    }
    defer db.Close()

    //自动创建数据表
    db.AutoMigrate(&User{})
}

Im obigen Code verwenden wir die Funktion AutoMigrate(), um automatisch zu erstellen, ob die Tabelle vorhanden ist , wird eine neue Tabelle erstellt. Wenn sie vorhanden ist, überspringen Sie sie.

5. Betriebsdaten

Nach Abschluss der oben genannten Arbeiten können wir mit der Datenverarbeitung beginnen. In GORM werden viele API-Funktionen bereitgestellt, um verschiedene CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren, Löschen) zu implementieren. Das Folgende ist Beispielcode für einige häufige Vorgänge:

  1. Neue Daten
//新建一条用户数据
func CreateUser(u User) error {
    return db.Create(&u).Error
}

Im obigen Code verwenden wir die Funktion Create(), um Erstellen Sie einen neuen Benutzer. Datenmanipulation.

  1. Daten abfragen
//查询指定ID的用户数据
func GetUserById(id uint) (User, error) {
    var user User
    return user, db.Where("id = ?", id).First(&user).Error
}

Im obigen Code verwenden wir die Funktionen Where() und First(), um die Benutzerdaten des abzurufen angegebene ID.

  1. Daten aktualisieren
//更新指定ID的用户数据
func UpdateUser(id uint, name string, age int) error {
    result := db.Model(&User{}).Where("id = ?", id).Update(map[string]interface{}{"name": name, "age": age})
    if result.Error != nil {
        return result.Error
    }

    if result.RowsAffected == 0 {
        return errors.New("未找到符合条件的记录")
    }

    return nil
}

Im obigen Code verwenden wir die Funktionen Model(), Where() und Update(), um die zu aktualisieren angegebene ID Operationen an Benutzerdaten.

  1. Daten löschen
//删除指定ID的用户数据
func DeleteUser(id uint) error {
    result := db.Delete(&User{}, id)
    if result.Error != nil {
        return result.Error
    }

    if result.RowsAffected == 0 {
        return errors.New("未找到符合条件的记录")
    }

    return nil
}

Im obigen Code verwenden wir die Funktion „Delete()“, um die Benutzerdaten der angegebenen ID zu löschen.

6. Zusammenfassung

Die Verwendung des ORM-Frameworks kann die Komplexität von Datenbankoperationen und Programmimplementierungen erheblich vereinfachen, Entwicklungszeit sparen und die Entwicklungseffizienz verbessern. In Golang kann uns die Verwendung des GORM-Frameworks dabei helfen, die MySQL-Datenbank bequemer zu betreiben. Natürlich bietet GORM auch viele erweiterte Operationen, die hier nicht beschrieben werden. Ich hoffe, dieser Artikel ist hilfreich für Sie.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie ORM in Golang. 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