Files
dbx/interfaces.go

52 lines
1.3 KiB
Go

package dbx
import (
"context"
"database/sql"
"github.com/go-jet/jet/v2/qrm"
)
// Queryable interface is an SQL driver object that can execute SQL statements
// for Jet.
type Queryable interface {
qrm.Queryable
Query(string, ...any) (*sql.Rows, error)
}
// Executable interface is an SQL driver object that can execute SQL statements
// for Jet.
type Executable interface {
qrm.Executable
Exec(string, ...any) (sql.Result, error)
}
// ExecutableTx interface is an SQL driver object that implements the Executable
// interface and can also begin a transaction.
type ExecutableTx interface {
Executable
Begin() (*sql.Tx, error)
}
// QueryExec interface is an SQL driver object that can execute SQL statements for Jet
// and query results.
type QueryExec interface {
Queryable
Executable
}
// QueryExecTx interface is an SQL driver object that can execute SQL statements for
// Jet, query results, and begin a transaction.
type QueryExecTx interface {
Queryable
ExecutableTx
}
// Statement is a common Jet statement for all SQL operations.
type Statement interface {
Query(db qrm.Queryable, destination any) error
QueryContext(ctx context.Context, db qrm.Queryable, destination any) error
Exec(db qrm.Executable) (sql.Result, error)
ExecContext(ctx context.Context, db qrm.Executable) (sql.Result, error)
}