Menggunakan driver database/sql Spanner

database/sql Go adalah antarmuka generik di sekitar database SQL (atau yang mirip SQL) untuk bahasa pemrograman Go. Untuk menggunakan database/sql dengan aplikasi Anda, gunakan driver database/sql Spanner.

Driver Spannerdatabase/sql mendukung database dialek GoogleSQL dan database dialek PostgreSQL.

Menginstal driver database/sql Spanner

Untuk menggunakan driver database/sql Spanner di aplikasi Anda, tambahkan modul berikut ke file go.mod:

  github.com/googleapis/go-sql-spanner

Menggunakan driver database/sql Spanner

Untuk membuat koneksi database/sql ke database Spanner, gunakan spanner sebagai nama driver dan nama database yang sepenuhnya memenuhi syarat sebagai string koneksi:

GoogleSQL

import (
	"context"
	"database/sql"
	"fmt"

	_ "github.com/googleapis/go-sql-spanner"
)

func connect(projectId, instanceId, databaseId string) error {
	ctx := context.Background()
	dsn := fmt.Sprintf("projects/%s/instances/%s/databases/%s",
		projectId, instanceId, databaseId)
	db, err := sql.Open("spanner", dsn)
	if err != nil {
		return fmt.Errorf("failed to open database connection: %v", err)
	}
	defer func() { _ = db.Close() }()

	fmt.Printf("Connected to %s\n", dsn)
	row := db.QueryRowContext(ctx, "select cast(@greeting as string)", "Hello from Spanner")
	var greeting string
	if err := row.Scan(&greeting); err != nil {
		return fmt.Errorf("failed to get greeting: %v", err)
	}
	fmt.Printf("Greeting: %s\n", greeting)

	return nil
}

PostgreSQL

import (
	"context"
	"database/sql"
	"fmt"

	_ "github.com/googleapis/go-sql-spanner"
)

func connect(projectId, instanceId, databaseId string) error {
	ctx := context.Background()
	dsn := fmt.Sprintf("projects/%s/instances/%s/databases/%s",
		projectId, instanceId, databaseId)
	db, err := sql.Open("spanner", dsn)
	if err != nil {
		return fmt.Errorf("failed to open database connection: %v",