interfaces.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 BeforeCreateInterface interface {
  24. BeforeCreate(*DB)
  25. }
  26. type AfterCreateInterface interface {
  27. AfterCreate(*DB)
  28. }
  29. type BeforeUpdateInterface interface {
  30. BeforeUpdate(*DB)
  31. }
  32. type AfterUpdateInterface interface {
  33. AfterUpdate(*DB)
  34. }
  35. type BeforeSaveInterface interface {
  36. BeforeSave(*DB)
  37. }
  38. type AfterSaveInterface interface {
  39. AfterSave(*DB)
  40. }
  41. type BeforeDeleteInterface interface {
  42. BeforeDelete(*DB)
  43. }
  44. type AfterDeleteInterface interface {
  45. AfterDelete(*DB)
  46. }
  47. type AfterFindInterface interface {
  48. AfterFind(*DB)
  49. }