当前位置: 首页>>代码示例>>用法及示例精选>>正文


golang sql.Stmt用法及代码示例

GO语言database/sql包Stmt类型的用法及代码示例。

Stmt是一个准备好的语句。一个Stmt可安全地供多个goroutine并发使用。

如果在Tx或Conn上准备了Stmt,它将永远绑定到单个基础连接。如果Tx或Conn关闭,则Stmt将变得不可用,并且所有操作都将返回错误。如果在数据库上准备了Stmt,它将在数据库的整个生命周期内保持可用状态。当Stmt需要在新的基础连接上执行时,它将自动在新的连接上进行准备。

用法:

type Stmt struct {
    // contains filtered or unexported fields
}

示例

package main

import (
	"context"
	"database/sql"
	"log"
)

var (
	ctx context.Context
	db  *sql.DB
)

func main() {
	// In normal use, create one Stmt when your process starts.
	stmt, err := db.PrepareContext(ctx, "SELECT username FROM users WHERE id = ?")
	if err != nil {
		log.Fatal(err)
	}
	defer stmt.Close()

	// Then reuse it each time you need to issue the query.
	id := 43
	var username string
	err = stmt.QueryRowContext(ctx, id).Scan(&username)
	switch {
	case err == sql.ErrNoRows:
		log.Fatalf("no user with id %d", id)
	case err != nil:
		log.Fatal(err)
	default:
		log.Printf("username is %s\n", username)
	}
}

相关用法

注:本文由纯净天空筛选整理自golang.org大神的英文原创作品 golang sql.Stmt。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。