Maison  >  Article  >  développement back-end  >  Comment utiliser ORM dans Golang

Comment utiliser ORM dans Golang

PHPz
PHPzoriginal
2023-04-11 09:10:43764parcourir

Golang est un langage compilé qui a été privilégié par de plus en plus de développeurs en raison de ses bonnes performances. Avec le développement de Golang, de plus en plus de scénarios d'application sont couverts, notamment le développement Web, les outils système, les bases de données, etc. Parmi elles, les opérations de bases de données sont également devenues partie intégrante du travail quotidien des développeurs Golang. Dans les opérations de base de données, l'utilisation du framework ORM peut considérablement gagner du temps et améliorer l'efficacité du développement. Alors comment utiliser le framework ORM pour faire fonctionner la base de données dans Golang ? Découvrons-le.

ORM (Object Relational Mapping) fait référence à la conversion des données d'une base de données relationnelle en un ensemble de données orientées objet en utilisant des métadonnées qui décrivent les objets et les relations, et encapsule les opérations de la base de données dans une couche d'abstraction, nous permettant de nous en soucier. sur les opérations SQL sous-jacentes au cours du processus de programmation, simplifiant ainsi la complexité des opérations de base de données et de la mise en œuvre du programme.

Actuellement, les frameworks ORM les plus populaires dans Golang incluent : GORM, XORM, QBS, etc. Dans cet article, nous prendrons GORM comme exemple pour présenter en détail comment utiliser le framework ORM dans Golang.

1. Installez GORM

Avant de commencer à utiliser GORM, vous devez installer ses packages de dépendances correspondants. Voici les packages de dépendances qui doivent être installés pour utiliser GORM :

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

Parmi eux, le deuxième package de dépendances est utilisé pour se connecter à la base de données MySQL.

2. Connectez-vous à la base de données

Avant d'utiliser GORM pour faire fonctionner la base de données MySQL, nous devons d'abord établir une connexion. Dans GORM, vous pouvez vous connecter à la base de données MySQL via le code suivant :

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()
}

Dans le code ci-dessus, nous nous connectons à la base de données MySQL via la fonction Open(), qui contient le nom d'utilisateur MySQL, le mot de passe, le nom de la base de données et d'autres informations. . Il convient de noter que l'ajout de "&charset=utf8&parseTime=True&loc=Local" à la fin du paramètre peut garantir que le codage UTF-8 est utilisé et que l'analyse du type d'heure est prise en charge.

3. Définir la structure

Lorsque vous utilisez le framework ORM, vous devez définir la structure de la table de la base de données pour le mappage avec les tables de la base de données. Voici un exemple de structure qui définit une table utilisateur :

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

Grâce au code ci-dessus, plusieurs champs de la table utilisateur sont mappés aux attributs de la structure. Parmi eux, "gorm.Model" est une structure fournie par GORM qui implémente les quatre champs ID, CreatedAt, UpdatedAt et DeletedAt. Ces quatre champs communs peuvent être facilement ajoutés à chaque table.

4. Créer une table de données

Après avoir défini la structure de la table, vous devez également créer la table de données correspondante. Dans GORM, vous pouvez utiliser la fonction AutoMigrate() pour créer automatiquement une table de données. Voici l'exemple de code :

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{})
}

Dans le code ci-dessus, nous utilisons la fonction AutoMigrate() pour créer automatiquement la table utilisateur. Cette fonction identifiera automatiquement si la table existe. Si elle n'existe pas, elle en créera une nouvelle. table. S'il existe, il sera ignoré.

5. Manipuler les données

Après avoir terminé le travail ci-dessus, nous pouvons commencer à exploiter les données. Dans GORM, de nombreuses fonctions API sont fournies pour implémenter diverses opérations CRUD (Créer, Lire, Mettre à jour, Supprimer). Voici un exemple de code pour certaines opérations courantes :

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

Dans le code ci-dessus, nous utilisons la fonction Create() pour implémenter l'opération de création de nouvelles données utilisateur.

  1. Requête de données
//查询指定ID的用户数据
func GetUserById(id uint) (User, error) {
    var user User
    return user, db.Where("id = ?", id).First(&user).Error
}

Dans le code ci-dessus, nous utilisons les fonctions Where() et First() pour obtenir les données utilisateur de l'ID spécifié.

  1. Mettre à jour les données
//更新指定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
}

Dans le code ci-dessus, nous utilisons les fonctions Model(), Where() et Update() pour mettre à jour les données utilisateur de l'ID spécifié.

  1. Supprimer les données
//删除指定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
}

Dans le code ci-dessus, nous utilisons la fonction Supprimer() pour supprimer les données utilisateur de l'ID spécifié.

6. Résumé

L'utilisation du framework ORM peut considérablement simplifier la complexité des opérations de base de données et de la mise en œuvre des programmes, gagner du temps de développement et améliorer l'efficacité du développement. Dans Golang, l'utilisation du framework GORM peut nous aider à exploiter la base de données MySQL plus facilement. Bien entendu, GORM propose également de nombreuses opérations avancées, qui ne seront pas décrites ici. J'espère que cet article vous sera utile.

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!

Déclaration:
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