interfaces.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package gorm
  2. import (
  3. "context"
  4. "database/sql"
  5. "github.com/jinzhu/gorm/schema"
  6. )
  7. // Dialector GORM database dialector
  8. type Dialector interface {
  9. Initialize(*DB) error
  10. Migrator(db *DB) Migrator
  11. DataTypeOf(*schema.Field) string
  12. BindVar(stmt *Statement, v interface{}) string
  13. QuoteChars() [2]byte
  14. Explain(sql string, vars ...interface{}) string
  15. }
  16. // CommonDB common db interface
  17. type CommonDB interface {
  18. ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
  19. PrepareContext(ctx context.Context, query string) (*sql.Stmt, error)
  20. QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
  21. QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row
  22. }
  23. type TxBeginner interface {
  24. BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error)
  25. }
  26. type TxCommiter interface {
  27. Commit() error
  28. Rollback() error
  29. }
  30. type BeforeCreateInterface interface {
  31. BeforeCreate(*DB)
  32. }
  33. type AfterCreateInterface interface {
  34. AfterCreate(*DB)
  35. }
  36. type BeforeUpdateInterface interface {
  37. BeforeUpdate(*DB)
  38. }
  39. type AfterUpdateInterface interface {
  40. AfterUpdate(*DB)
  41. }
  42. type BeforeSaveInterface interface {
  43. BeforeSave(*DB)
  44. }
  45. type AfterSaveInterface interface {
  46. AfterSave(*DB)
  47. }
  48. type BeforeDeleteInterface interface {
  49. BeforeDelete(*DB)
  50. }
  51. type AfterDeleteInterface interface {
  52. AfterDelete(*DB)
  53. }
  54. type AfterFindInterface interface {
  55. AfterFind(*DB)
  56. }