kratos: github.com/bilibili/kratos/pkg/database/sql Index | Files

package sql

import "github.com/bilibili/kratos/pkg/database/sql"

Index

Package Files

metrics.go mysql.go sql.go

Variables

var (
    // ErrStmtNil prepared stmt error
    ErrStmtNil = errors.New("sql: prepare failed and stmt nil")
    // ErrNoMaster is returned by Master when call master multiple times.
    ErrNoMaster = errors.New("sql: no master instance")
    // ErrNoRows is returned by Scan when QueryRow doesn't return a row.
    // In such a case, QueryRow returns a placeholder *Row value that defers
    // this error until a Scan.
    ErrNoRows = sql.ErrNoRows
    // ErrTxDone transaction done.
    ErrTxDone = sql.ErrTxDone
)

type Config Uses

type Config struct {
    DSN          string          // write data source name.
    ReadDSN      []string        // read data source name.
    Active       int             // pool
    Idle         int             // pool
    IdleTimeout  time.Duration   // connect max life time.
    QueryTimeout time.Duration   // query sql timeout
    ExecTimeout  time.Duration   // execute sql timeout
    TranTimeout  time.Duration   // transaction sql timeout
    Breaker      *breaker.Config // breaker
}

Config mysql config.

type DB Uses

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

DB database.

func NewMySQL Uses

func NewMySQL(c *Config) (db *DB)

NewMySQL new db and retry connection when has error.

func Open Uses

func Open(c *Config) (*DB, error)

Open opens a database specified by its database driver name and a driver-specific data source name, usually consisting of at least a database name and connection information.

func (*DB) Begin Uses

func (db *DB) Begin(c context.Context) (tx *Tx, err error)

Begin starts a transaction. The isolation level is dependent on the driver.

func (*DB) Close Uses

func (db *DB) Close() (err error)

Close closes the write and read database, releasing any open resources.

func (*DB) Exec Uses

func (db *DB) Exec(c context.Context, query string, args ...interface{}) (res sql.Result, err error)

Exec executes a query without returning any rows. The args are for any placeholder parameters in the query.

func (*DB) Master Uses

func (db *DB) Master() *DB

Master return *DB instance direct use master conn use this *DB instance only when you have some reason need to get result without any delay.

func (*DB) Ping Uses

func (db *DB) Ping(c context.Context) (err error)

Ping verifies a connection to the database is still alive, establishing a connection if necessary.

func (*DB) Prepare Uses

func (db *DB) Prepare(query string) (*Stmt, error)

Prepare creates a prepared statement for later queries or executions. Multiple queries or executions may be run concurrently from the returned statement. The caller must call the statement's Close method when the statement is no longer needed.

func (*DB) Prepared Uses

func (db *DB) Prepared(query string) (stmt *Stmt)

Prepared creates a prepared statement for later queries or executions. Multiple queries or executions may be run concurrently from the returned statement. The caller must call the statement's Close method when the statement is no longer needed.

func (*DB) Query Uses

func (db *DB) Query(c context.Context, query string, args ...interface{}) (rows *Rows, err error)

Query executes a query that returns rows, typically a SELECT. The args are for any placeholder parameters in the query.

func (*DB) QueryRow Uses

func (db *DB) QueryRow(c context.Context, query string, args ...interface{}) *Row

QueryRow executes a query that is expected to return at most one row. QueryRow always returns a non-nil value. Errors are deferred until Row's Scan method is called.

type Row Uses

type Row struct {
    *sql.Row
    // contains filtered or unexported fields
}

Row row.

func (*Row) Scan Uses

func (r *Row) Scan(dest ...interface{}) (err error)

Scan copies the columns from the matched row into the values pointed at by dest.

type Rows Uses

type Rows struct {
    *sql.Rows
    // contains filtered or unexported fields
}

Rows rows.

func (*Rows) Close Uses

func (rs *Rows) Close() (err error)

Close closes the Rows, preventing further enumeration. If Next is called and returns false and there are no further result sets, the Rows are closed automatically and it will suffice to check the result of Err. Close is idempotent and does not affect the result of Err.

type Stmt Uses

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

Stmt prepared stmt.

func (*Stmt) Close Uses

func (s *Stmt) Close() (err error)

Close closes the statement.

func (*Stmt) Exec Uses

func (s *Stmt) Exec(c context.Context, args ...interface{}) (res sql.Result, err error)

Exec executes a prepared statement with the given arguments and returns a Result summarizing the effect of the statement.

func (*Stmt) Query Uses

func (s *Stmt) Query(c context.Context, args ...interface{}) (rows *Rows, err error)

Query executes a prepared query statement with the given arguments and returns the query results as a *Rows.

func (*Stmt) QueryRow Uses

func (s *Stmt) QueryRow(c context.Context, args ...interface{}) (row *Row)

QueryRow executes a prepared query statement with the given arguments. If an error occurs during the execution of the statement, that error will be returned by a call to Scan on the returned *Row, which is always non-nil. If the query selects no rows, the *Row's Scan will return ErrNoRows. Otherwise, the *Row's Scan scans the first selected row and discards the rest.

type Tx Uses

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

Tx transaction.

func (*Tx) Commit Uses

func (tx *Tx) Commit() (err error)

Commit commits the transaction.

func (*Tx) Exec Uses

func (tx *Tx) Exec(query string, args ...interface{}) (res sql.Result, err error)

Exec executes a query that doesn't return rows. For example: an INSERT and UPDATE.

func (*Tx) Prepare Uses

func (tx *Tx) Prepare(query string) (*Stmt, error)

Prepare creates a prepared statement for use within a transaction. The returned statement operates within the transaction and can no longer be used once the transaction has been committed or rolled back. To use an existing prepared statement on this transaction, see Tx.Stmt.

func (*Tx) Query Uses

func (tx *Tx) Query(query string, args ...interface{}) (rows *Rows, err error)

Query executes a query that returns rows, typically a SELECT.

func (*Tx) QueryRow Uses

func (tx *Tx) QueryRow(query string, args ...interface{}) *Row

QueryRow executes a query that is expected to return at most one row. QueryRow always returns a non-nil value. Errors are deferred until Row's Scan method is called.

func (*Tx) Rollback Uses

func (tx *Tx) Rollback() (err error)

Rollback aborts the transaction.

func (*Tx) Stmt Uses

func (tx *Tx) Stmt(stmt *Stmt) *Stmt

Stmt returns a transaction-specific prepared statement from an existing statement.

Package sql imports 14 packages (graph). Updated 2019-08-15. Refresh now. Tools for package owners.