Maison > développement back-end > Golang > le corps du texte

Interaction entre les fonctions Golang et les bases de données distribuées dans les systèmes distribués

王林
Libérer: 2024-04-19 15:06:01
original
676 Les gens l'ont consulté

Dans un système distribué, les fonctions Go peuvent interagir avec des bases de données distribuées. Les étapes spécifiques sont les suivantes : Installez les dépendances nécessaires. Utilisez la fonction spanner.NewClient pour vous connecter à la base de données. Utilisez la méthode Query pour exécuter la requête et obtenir l'itérateur. Utilisez la méthode Do pour parcourir les résultats de la requête et traiter les données. Une fois la requête terminée, utilisez la méthode Close pour fermer la connexion.

分布式系统中 Golang 函数与分布式数据库的交互

Interaction entre les fonctions Go et les bases de données distribuées dans les systèmes distribués

Dans les systèmes distribués, il est courant que les fonctions Go interagissent avec les bases de données distribuées. Cet article vous guide dans l'utilisation du code Go pour vous connecter et interroger une base de données distribuée.

Installer les dépendances

La première étape consiste à installer les dépendances nécessaires :

import (
    "context"
    "fmt"
    "log"

    "cloud.google.com/go/spanner"
)
Copier après la connexion

Connectez-vous à la base de données

Pour vous connecter à la base de données, utilisez la fonction spanner.NewClient : spanner.NewClient 函数:

client, err := spanner.NewClient(context.Background(), "projects/my-project", "instances/my-instance", "databases/my-database")
if err != nil {
    log.Fatal(err)
}
Copier après la connexion

执行查询

要执行查询,请使用 Query 方法:

stmt := spanner.Statement{SQL: `SELECT * FROM Singers`}
iter := client.Single().Query(context.Background(), stmt)
defer iter.Stop()
Copier après la connexion

iter 是一个迭代器,它将遍历查询结果。

处理结果

要处理结果,请使用 Do

for {
    row, err := iter.Next()
    if err == iterator.Done {
        break
    }
    if err != nil {
        log.Fatal(err)
    }
    var singerId int64
    var firstName string
    var lastName string
    if err := row.ColumnByName("SingerId", &singerId); err != nil {
        log.Fatal(err)
    }
    if err := row.ColumnByName("FirstName", &firstName); err != nil {
        log.Fatal(err)
    }
    if err := row.ColumnByName("LastName", &lastName); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%d %s %s\n", singerId, firstName, lastName)
}
Copier après la connexion

Exécutez le query

Pour exécuter une requête, utilisez la méthode Query :

client.Close()
Copier après la connexion

iter est un itérateur qui parcourra les résultats de la requête.

Traitement des résultats

Pour traiter les résultats, veuillez utiliser la méthode Do : 🎜
package main

import (
    "context"
    "fmt"
    "log"

    "cloud.google.com/go/spanner"
)

func main() {
    client, err := spanner.NewClient(context.Background(), "projects/my-project", "instances/my-instance", "databases/my-database")
    if err != nil {
        log.Fatal(err)
    }
    defer client.Close()

    stmt := spanner.Statement{SQL: `SELECT * FROM Singers`}
    iter := client.Single().Query(context.Background(), stmt)
    defer iter.Stop()

    for {
        row, err := iter.Next()
        if err == iterator.Done {
            break
        }
        if err != nil {
            log.Fatal(err)
        }
        var singerId int64
        var firstName string
        var lastName string
        if err := row.ColumnByName("SingerId", &singerId); err != nil {
            log.Fatal(err)
        }
        if err := row.ColumnByName("FirstName", &firstName); err != nil {
            log.Fatal(err)
        }
        if err := row.ColumnByName("LastName", &lastName); err != nil {
            log.Fatal(err)
        }
        fmt.Printf("%d %s %s\n", singerId, firstName, lastName)
    }
}
Copier après la connexion
🎜Fermer la connexion🎜🎜Une fois la requête terminée, veuillez fermer la connexion à la base de données : 🎜rrreee🎜Cas réel 🎜🎜Voici un exemple de code Complete Go montrant comment se connecter à une base de données Cloud Spanner et exécuter des requêtes : 🎜rrreee

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