github.com/systematiccaos/gorm@v1.22.6/interfaces.go (about) 1 package gorm 2 3 import ( 4 "context" 5 "database/sql" 6 7 "github.com/systematiccaos/gorm/clause" 8 "github.com/systematiccaos/gorm/schema" 9 ) 10 11 // Dialector GORM database dialector 12 type Dialector interface { 13 Name() string 14 Initialize(*DB) error 15 Migrator(db *DB) Migrator 16 DataTypeOf(*schema.Field) string 17 DefaultValueOf(*schema.Field) clause.Expression 18 BindVarTo(writer clause.Writer, stmt *Statement, v interface{}) 19 QuoteTo(clause.Writer, string) 20 Explain(sql string, vars ...interface{}) string 21 } 22 23 // Plugin GORM plugin interface 24 type Plugin interface { 25 Name() string 26 Initialize(*DB) error 27 } 28 29 // ConnPool db conns pool interface 30 type ConnPool interface { 31 PrepareContext(ctx context.Context, query string) (*sql.Stmt, error) 32 ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) 33 QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) 34 QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row 35 } 36 37 // SavePointerDialectorInterface save pointer interface 38 type SavePointerDialectorInterface interface { 39 SavePoint(tx *DB, name string) error 40 RollbackTo(tx *DB, name string) error 41 } 42 43 type TxBeginner interface { 44 BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error) 45 } 46 47 type ConnPoolBeginner interface { 48 BeginTx(ctx context.Context, opts *sql.TxOptions) (ConnPool, error) 49 } 50 51 type TxCommitter interface { 52 Commit() error 53 Rollback() error 54 } 55 56 // Valuer gorm valuer interface 57 type Valuer interface { 58 GormValue(context.Context, *DB) clause.Expr 59 } 60 61 type GetDBConnector interface { 62 GetDBConn() (*sql.DB, error) 63 }