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.
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.
La première étape consiste à installer les dépendances nécessaires :
import ( "context" "fmt" "log" "cloud.google.com/go/spanner" )
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) }
要执行查询,请使用 Query
方法:
stmt := spanner.Statement{SQL: `SELECT * FROM Singers`} iter := client.Single().Query(context.Background(), stmt) defer iter.Stop()
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) }
Query
: client.Close()
iter
est un itérateur qui parcourra les résultats de la requête. Traitement des résultatsPour 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) } }
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!