Maison > développement back-end > Golang > Comment interagir avec la base de données à l'aide des outils Golang ORM ?

Comment interagir avec la base de données à l'aide des outils Golang ORM ?

WBOY
Libérer: 2024-06-01 14:16:56
original
1041 Les gens l'ont consulté

L'utilisation des outils GORM ORM pour interagir avec la base de données peut être facilement réalisée à travers les étapes suivantes : installation et initialisation (1), définition du modèle (2), établissement du mappage (3), création d'enregistrements (4), lecture des enregistrements (5), mise à jour des enregistrements (6), suppression des enregistrements (7), traitement des transactions (8) et Il s'agit d'une application ORM (Object-Relational Mapping) pour Utilisez les outils Golang ORM pour interagir avec la base de données

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

Introduction

Les outils ORM (Object Relational Mapping) peuvent simplifier Applications Golang avec interaction entre bases de données relationnelles. Il permet aux développeurs de créer, lire, mettre à jour et supprimer facilement des enregistrements de base de données en établissant un mappage entre les objets et les tables de base de données.

GORM ORM

GORM est un outil ORM populaire dans Golang, qui fournit des fonctionnalités riches et une API intuitive. Voici comment interagir avec une base de données à l'aide de GORM :

Installation et initialisation

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

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

if err != nil {
    // 处理错误
}
Copier après la connexion

Définir le modèle

Créer une structure qui correspond à la table de la base de données :

type Product struct {
    ID    int    `gorm:"primary_key"`
    Name  string
    Price float64
}
Copier après la connexion

Construire le mappage

Utiliser

pour marquez le corps de la structure du modèle et établissez un mappage avec la table de la base de données :

func init() {
    db.AutoMigrate(&Product{})
}
Copier après la connexion
Créer un enregistrement

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

db.Create(&p)
Copier après la connexion
gorm.Model

Lire l'enregistrement

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

// 根据主键查找记录
var p Product
db.First(&p, 1)
Copier après la connexion

Mettre à jour l'enregistrement

p.Price = 1099.99
db.Save(&p)
Copier après la connexion

Supprimer l'enregistrement

db.Delete(&p)
Copier après la connexion

Traitement des transactions

L'utilisation de transactions peut garantir le succès ou l'échec simultané de plusieurs opérations de base de données :

// 开启一个事务
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
}
Copier après la connexion

Cas pratique

Créer une application CRUD simple (créer, lire, mettre à jour, supprimer) :

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)
}
Copier après la connexion

L'utilisation de GORM peut simplifier l'interaction avec la base de données , Démontre la puissance des outils Golang ORM.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal