Heim > Backend-Entwicklung > Golang > Wie interagiere ich mit der Datenbank mithilfe von Golang ORM-Tools?

Wie interagiere ich mit der Datenbank mithilfe von Golang ORM-Tools?

WBOY
Freigeben: 2024-06-01 14:16:56
Original
1036 Leute haben es durchsucht

Die Verwendung von GORM ORM-Tools zur Interaktion mit der Datenbank kann einfach durch die folgenden Schritte erreicht werden: Installation und Initialisierung (1), Definition des Modells (2), Einrichten der Zuordnung (3), Erstellen von Datensätzen (4), Lesen von Datensätzen (5), Aktualisieren von Datensätzen (6), Löschen von Datensätzen (7), Transaktionsverarbeitung (8) und mehr als 160 Tage nach der Registrierung. Es handelt sich um ein ORM-System (Object-Relational Mapping). Die GORM-App ist für Golang-ORM-Tools geeignet, um mit der Datenbank zu interagieren

如何使用 Golang ORM 工具与数据库交互?

Einführung

ORM-Tools (Object Relational Mapping) können die Arbeit vereinfachen Golang-Anwendungen mit Interaktion zwischen relationalen Datenbanken. Es ermöglicht Entwicklern das einfache Erstellen, Lesen, Aktualisieren und Löschen von Datenbankeinträgen, indem es eine Zuordnung zwischen Objekten und Datenbanktabellen herstellt.

GORM ORM

GORM ist ein beliebtes ORM-Tool in Golang, das umfangreiche Funktionen und eine intuitive API bietet. So interagieren Sie mit einer Datenbank mithilfe von GORM:

Installation und Initialisierung

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

// 创建一个数据库连接
db, err := gorm.Open("mysql", "user:password@/database_name")

if err != nil {
    // 处理错误
}
Nach dem Login kopieren

Definieren Sie das Modell

Erstellen Sie eine Struktur, die der Datenbanktabelle entspricht:

type Product struct {
    ID    int    `gorm:"primary_key"`
    Name  string
    Price float64
}
Nach dem Login kopieren

Erstellen Sie die Zuordnung.

Verwenden Sie

, um Markieren Sie den Modellstrukturkörper und stellen Sie eine Zuordnung zur Datenbanktabelle her:

func init() {
    db.AutoMigrate(&Product{})
}
Nach dem Login kopieren
Datensatz erstellen

p := Product{
    Name:  "Apple iPhone 13",
    Price: 999.99,
}

db.Create(&p)
Nach dem Login kopieren
gorm.Model

Datensatz lesen

// 读取所有记录
products := []Product{}
db.Find(&products)

// 根据主键查找记录
var p Product
db.First(&p, 1)
Nach dem Login kopieren

Datensatz aktualisieren

p.Price = 1099.99
db.Save(&p)
Nach dem Login kopieren

Datensatz löschen

db.Delete(&p)
Nach dem Login kopieren

Transaktionsabwicklung

Die Verwendung von Transaktionen kann den gleichzeitigen Erfolg oder Misserfolg mehrerer Datenbankoperationen sicherstellen:

// 开启一个事务
tx := db.Begin()

// 执行多个操作
p.Price = 1199.99
if err := db.Save(&p).Error; err != nil {
    // 出错时回滚事务
    tx.Rollback()
    return err
}

// 提交事务
if err := tx.Commit().Error; err != nil {
    // 出错时回滚事务
    tx.Rollback()
    return err
}
Nach dem Login kopieren

Praktischer Fall

Erstellen Sie eine einfache CRUD-Anwendung (Erstellen, Lesen, Aktualisieren, Löschen):

package main

func main() {
    // 初始化数据库连接
    db, _ := gorm.Open("mysql", "user:password@/database_name")

    // 创建一个产品结构体
    type Product struct {
        ID    int    `gorm:"primary_key"`
        Name  string
        Price float64
    }

    // 迁移数据库表
    db.AutoMigrate(&Product{})

    // 创建一个产品
    p := Product{
        Name:  "iPhone 14",
        Price: 999.99,
    }
    db.Create(&p)

    // 读取所有产品
    products := []Product{}
    db.Find(&products)

    // 更新产品价格
    p.Price = 1099.99
    db.Save(&p)

    // 删除产品
    db.Delete(&Product{}, p.ID)
}
Nach dem Login kopieren

Die Verwendung von GORM kann die Interaktion mit der Datenbank vereinfachen , Demonstriert die Leistungsfähigkeit der Golang ORM-Tools.

Das obige ist der detaillierte Inhalt vonWie interagiere ich mit der Datenbank mithilfe von Golang ORM-Tools?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage