sql

package
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Conn

type Conn struct {
	ExecQuerier
}

Conn 当前数据库连接,这个会在Driver.BeginTx()中被初始化,用于存放sql.Tx。

func (Conn) Exec

func (c Conn) Exec(ctx context.Context, query string, args []any, v any) error

Exec dialect.ExecQuerier.Exec的实现

Params:

  • ctx: 上下文。
  • query: 查询语句。
  • args: 查询参数。
  • v: 查询结果。

func (Conn) Query

func (c Conn) Query(ctx context.Context, query string, args []any, v *dialect.Rows) error

Query dialect.ExecQuerier.Query的实现

Params:

  • ctx: 上下文。
  • query: 查询语句。
  • args: 查询参数。
  • v: 查询结果。

type Driver

type Driver struct {
	Conn
	// contains filtered or unexported fields
}

Driver 数据库驱动。

func NewDriver

func NewDriver(driver dialect.DbDriver, c Conn) *Driver

NewDriver 创建一个新的数据库驱动。

Params:

  • driver: 数据库类型。
  • c: 数据库连接。

Returns:

0: 数据库驱动。

func (*Driver) BeginTx

func (d *Driver) BeginTx(ctx context.Context, opts *TxOptions) (dialect.Tx, error)

BeginTx 开始一个事务。

Params:

  • ctx: 上下文。
  • opts: 事务选项。

Returns:

0: 事务。
1: 错误信息。

func (*Driver) Close

func (d *Driver) Close() error

Close 关闭数据库连接。

func (Driver) DB

func (d Driver) DB() *sql.DB

DB 返回数据库连接。

Returns:

0: 数据库连接。

func (Driver) Dialect

func (d Driver) Dialect() dialect.DbDriver

Dialect 返回数据库类型。

Returns:

0: 数据库类型。

func (*Driver) Tx

func (d *Driver) Tx(ctx context.Context) (dialect.Tx, error)

Tx 返回一个事务。

Params:

  • ctx: 上下文。

Returns:

0: 事务。
1: 错误信息。

type ExecQuerier

type ExecQuerier interface {
	// ExecContext 执行不返回记录的查询。例如,SQL中INSERT或UPDATE, 但是也支持返回一些元数据。
	// 例如,PostgreSQL的INSERT ... RETURNING是使用QueryContext,
	// 但是MySQL的INSERT是使用ExecContext,因为它不支持RETURNING,但是为了兼容PostgreSQL的RETURNING,所以需要支持返回一些元数据。
	ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
	// QueryContext 执行返回记录的查询,通常是SQL中的SELECT,或者有RETURNING子句的INSERT/UPDATE。
	QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)
}

ExecQuerier 执行查询需要满足的接口。

type Tx

type Tx struct {
	Conn
	driver.Tx
	// contains filtered or unexported fields
}

Tx 包装了数据库事务,实现了driver.Tx接口。

func (Tx) Dialect added in v0.5.0

func (d Tx) Dialect() dialect.DbDriver

Dialect 返回数据库类型。

Returns:

0: 数据库类型。

type TxOptions

type TxOptions = sql.TxOptions

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL