>  기사  >  백엔드 개발  >  분산 시스템에서 Golang 함수와 분산 데이터베이스 간의 상호 작용

분산 시스템에서 Golang 함수와 분산 데이터베이스 간의 상호 작용

王林
王林원래의
2024-04-19 15:06:01674검색

분산 시스템에서 Go 기능은 분산 데이터베이스와 상호 작용할 수 있습니다. 구체적인 단계는 다음과 같습니다. 필요한 종속성을 설치합니다. spanner.NewClient 함수를 사용하여 데이터베이스에 연결합니다. Query 메서드를 사용하여 쿼리를 실행하고 반복자를 가져옵니다. Do 메서드를 사용하여 쿼리 결과를 반복하고 데이터를 처리합니다. 쿼리가 완료된 후 Close 메서드를 사용하여 연결을 닫습니다.

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

분산 시스템에서 Go 기능과 분산 데이터베이스 간의 상호 작용

분산 시스템에서는 Go 기능이 분산 데이터베이스와 상호 작용하는 것이 일반적인 요구 사항입니다. 이 문서에서는 Go 코드를 사용하여 분산 데이터베이스에 연결하고 쿼리하는 방법을 안내합니다.

종속성 설치

첫 번째 단계는 필요한 종속성을 설치하는 것입니다.

import (
    "context"
    "fmt"
    "log"

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

데이터베이스에 연결

데이터베이스에 연결하려면 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

쿼리를 실행하려면 Query 메서드를 사용하세요.

client.Close()

iter는 쿼리 결과를 반복하는 반복자입니다.

결과 처리 중

결과를 처리하려면 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)
    }
}
🎜연결 닫기🎜🎜쿼리가 완료된 후 데이터베이스 연결을 닫으세요: 🎜rrreee🎜실제 사례 🎜🎜다음은 Cloud Spanner 데이터베이스에 연결하고 쿼리를 실행하는 방법을 보여주는 Complete Go 코드 예시입니다. 🎜rrreee

위 내용은 분산 시스템에서 Golang 함수와 분산 데이터베이스 간의 상호 작용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.