Maison  >  Article  >  développement back-end  >  Persistance des données et opérations CRUD en langage Go

Persistance des données et opérations CRUD en langage Go

王林
王林original
2023-06-04 15:10:351748parcourir

Avec le développement d'Internet, le stockage et l'utilisation des données sont devenus de plus en plus importants, notamment pour certaines applications gourmandes en données. En tant que langage de programmation émergent, le langage Go a progressivement émergé dans l'évolution des entrepôts de données et des scénarios de Big Data grâce à ses fonctionnalités rapides, sûres, simultanées et efficaces. Cet article expliquera comment implémenter la persistance des données et les opérations CRUD en langage Go.

Première étape : Choisissez une base de données appropriée

Le langage Go fournit de nombreux pilotes de base de données, notamment PostgreSQL, SQLite, MySQL, MariaDB et MongoDB, etc. Avant de commencer à écrire un programme, vous devez d'abord choisir une base de données adaptée à votre application et continuer à apprendre les pilotes pertinents. Parmi elles, certaines des plus couramment utilisées sont :

  • Bases de données SQL : PostgreSQL, MySQL, SQLite et MariaDB.
  • Base de données NoSQL : MongoDB, etc.

Ici, nous ne discuterons pas en détail des différences entre les différentes bases de données. En termes simples, les bases de données SQL sont généralement plus pratiques lors de l'établissement de relations complexes avec des données relationnelles, tandis que lors de la gestion de données semi-structurées, des requêtes de données multidimensionnelles doivent être traitées ; efficacement Quand, une base de données NoSQL peut être plus adaptée.

Étape 2 : Écrire le pilote de base de données

Le langage Go fournit de nombreux pilotes de base de données intégrés, tels que base de données/sql, qui fournit une interface SQL unifiée pour tous les programmeurs Go. Bien entendu, les interfaces implémentées par les différents pilotes de base de données sont également différentes.

Ici, nous prenons la base de données MySQL comme exemple pour illustrer comment établir une connexion à une base de données dans le langage Go. Étant donné que le pilote de base de données/sql du langage Go fournit une interface SQL unifiée pour diverses bases de données relationnelles, les programmeurs n'ont qu'à modifier les paramètres pertinents pour utiliser différents types de bases de données relationnelles dans les applications. Voici un exemple de configuration d'un pilote MySQL :

    import (
        "database/sql"
        _ "github.com/go-sql-driver/mysql"
    )

    func getDatabaseConnection() (*sql.DB, error) {
        db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/test")
        return db, err
    }

Dans le code ci-dessus, vous pouvez voir que le pilote MySQL est introduit à l'aide de import. Ensuite, nous utilisons la méthode sql.Open() pour établir une connexion à la base de données et transmettre certains paramètres de la connexion, tels que le numéro de compte, le mot de passe, l'adresse de l'hôte et le numéro de port, etc. Ici, nous utilisons le compte root sans mot de passe, l'adresse de l'hôte est 127.0.0.1, le numéro de port est 3306 et le nom de la base de données est test. import 引入了 MySQL 驱动程序。接着,我们使用 sql.Open() 方法来建立数据库连接,并传入了连接的一些参数,例如账号、密码、主机地址和端口号等。这里我们使用的是root账号,没有密码,主机地址为127.0.0.1,端口号为3306,数据库名称为test

过程完成后,需要调用 db.Ping()方法来测试是否已成功连接到数据库,并返回 *sql.DB 类型的连接对象。

第三步:执行CRUD操作

现在,我们已经建立了数据库连接,接下来就可以执行CRUD操作了。CRUD操作分别代表增加(Create)、读取(Read)、更新(Update)和删除(Delete)。这些操作通常涉及到对数据库中表的数据进行读取、查询、修改和删除等操作。

下面是一个简单的CRUD示例,可以向带有“id、name、age”三个字段的数据库添加一条记录:

    func createUser(newUser User) error {
        db, err := getDatabaseConnection()
        if err != nil {
            return err
        }
        defer db.Close()

        _, err = db.Exec("INSERT INTO users(name, age) VALUES(?, ?)", newUser.Name, newUser.Age)
        if err != nil {
            return err
        }
        return nil
    }

在以上代码中,使用了db.Exec()方法将数据写入数据库中。其中,?为动态绑定参数。通过这种方式,预编译的SQL查询语句会自动填入相应的参数,从而保证了程序的安全性。

还可以使用 db.Query() 方法从数据库中进行查询操作:

    func getUserByID(id int64) (*User, error) {
        db, err := getDatabaseConnection()
        if err != nil {
            return nil, err
        }
        defer db.Close()

        row := db.QueryRow("SELECT id, name, age FROM users WHERE id = ?", id)

        user := new(User)
        err = row.Scan(&user.ID, &user.Name, &user.Age)
        if err != nil {
            return nil, err
        }

        return user, nil
    }

在以上示例中,使用 db.QueryRow() 方法执行查询,将查询结果记录到 row 对象中。使用 row.Scan() 方法将查询结果中特定列的值填充到 User 结构体中(假设 User 结构体具有字段 ID、Name 和 Age

Une fois le processus terminé, vous devez appeler la méthode db.Ping() pour tester si vous vous êtes connecté avec succès à la base de données et renvoyer un objet de connexion de type *sql.DB .

Étape 3 : Effectuer des opérations CRUD

Maintenant que nous avons établi une connexion à la base de données, nous pouvons effectuer des opérations CRUD. Les opérations CRUD représentent respectivement l'ajout (Créer), la lecture (Lire), la mise à jour (Mise à jour) et la suppression (Supprimer). Ces opérations impliquent généralement la lecture, l'interrogation, la modification et la suppression de données des tables de la base de données. 🎜🎜Ce qui suit est un exemple CRUD simple qui peut ajouter un enregistrement à la base de données avec trois champs : "id, name, age": 🎜rrreee🎜Dans le code ci-dessus, db.Exec() est utilisé > La méthode écrit les données dans la base de données. Parmi eux, <code>? est un paramètre de liaison dynamique. De cette manière, l'instruction de requête SQL précompilée remplira automatiquement les paramètres correspondants, assurant ainsi la sécurité du programme. 🎜🎜Vous pouvez également utiliser la méthode db.Query() pour effectuer des opérations de requête à partir de la base de données : 🎜rrreee🎜Dans l'exemple ci-dessus, utilisez la méthode db.QueryRow() pour exécuter la requête et enregistrer les résultats de la requête dans le ligne au milieu de l'objet. Utilisez la méthode row.Scan() pour remplir la valeur d'une colonne spécifique dans le résultat de la requête dans la structure User (en supposant que l'User la structure comporte les champs ID, Nom et Âge). 🎜🎜Résumé🎜🎜Que vous créiez des applications Web, traitiez de grands ensembles de données ou construisiez des systèmes distribués, le langage Go est un choix fiable. Dans cet article, nous vous avons montré comment créer la persistance des données et les opérations CRUD à l'aide du langage Go et de différents types de bases de données. Que vous ayez besoin de créer des applications de base de données, d'effectuer des analyses de données ou de concevoir des applications hautes performances à grande échelle, Go est un choix judicieux. 🎜

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