jet/wiki/Statements.md
2019-07-15 13:06:06 +02:00

2.2 KiB

Following statements are supported:

This list might be extended with feature Jet releases.

Executing statements

Statements can be executed with following methods:

  • Query(db execution.DB, destination interface{}) error - executes statements over database connection db and maps row result result set to destination.
  • QueryContext(db execution.DB, context context.Context, destination interface{}) error - executes statement with a context over database connection db and maps row result result set to destination.
  • Exec(db execution.DB) (sql.Result, error) - executes statement over db connection and returns sql.Result.
  • ExecContext(db execution.DB, context context.Context) (sql.Result, error) - executes statement with context over db connection and returns sql.Result.

Each execution method first creates parametrized sql query with list of arguments and then initiates query on database connection. Exec and ExecContext are just a wrappers around database Exec and ExecContext.

Query and QueryContext are bit more complex, the are wrappers around database Query and QueryContext, but they also perform grouping of row result to arbitrary destination structure.

Database connection can be of any type that implements following interface:

type DB interface {
	Exec(query string, args ...interface{}) (sql.Result, error)
	ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
	Query(query string, args ...interface{}) (*sql.Rows, error)
	QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
}

These include but are not limited to:

  • sql.DB
  • sql.Tx
  • sql.Conn

Debugging statements

Statements SQL can be debugged in two ways:

  • Sql() (query string, args []interface{}, err error) - retrieves parametrized sql query with list of arguments
  • DebugSql() (query string, err error) - retrieves debug query where every parametrized placeholder is replaced with its argument.