drivers

package
v0.11.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DBDriver

type DBDriver interface {
	Init(config *config.Connect) bool
	IsConnected() bool
	Insert(tableName string, columns []string, data ...[]interface{}) (int64, int64)
	Delete(tableName string, where map[string]interface{}) int64
	Update(tableName string, data, where map[string]interface{}) int64
	FetchAll(tableName string, params map[string]interface{}) ([]map[string]interface{}, error)
	FetchOne(tableName string, params map[string]interface{}) (map[string]interface{}, error)
	Count(tableName string, params map[string]interface{}) int64
	Sum(tableName string, field string, params map[string]interface{}) int64
	SetCacheEngine(cache cache.Cache)
	IsCacheEngineOK() bool
	GetDB() *sql.DB
}

DBDriver interface

type MySQL

type MySQL struct {
	sql.Executor
	// contains filtered or unexported fields
}

MySQL

func (*MySQL) Count

func (my *MySQL) Count(tableName string, params map[string]interface{}) int64

Count

func (*MySQL) Delete

func (my *MySQL) Delete(tableName string, where map[string]interface{}) int64

Delete

@params tableName @params where, format:

map[string]interface{}{"id = ?": 1}
map[string]interface{}{"id = ? AND domain = ?": []interface{}{1, "exsample.com"}}

func (*MySQL) FetchAll

func (my *MySQL) FetchAll(tableName string, params map[string]interface{}) ([]map[string]interface{}, error)

FetchAll

@params tableName @params params, including:where, group by, having, order by, limit, offset eg.

map[string]interface{}{
		"columns": "id, domain, url",
		"where": map[string]interface{}{
			"domain = ? AND url = ?": []interface{}{"www.exsample.com", "/mail"},
			which is equally as
			"domain = ?": "www.exsample.com",
			"url = ?": "/mail",
		},
		"groupBy": "id",
		"orderBy": "id DESC",
		"limit": 1,
		"offset": 1,
}

func (*MySQL) FetchOne

func (my *MySQL) FetchOne(tableName string, params map[string]interface{}) (map[string]interface{}, error)

FetchOne

refer to FetchAll

func (*MySQL) Init

func (my *MySQL) Init(config *config.Connect) bool

Init

func (*MySQL) Insert

func (my *MySQL) Insert(tableName string, columns []string, data ...[]interface{}) (int64, int64)

Insert

@params tableName @params columns. format: []string{"domain", "url"}, attention: when columns are empty, it means all columns @params data... format: []interface{}{ "exsample.com", "/mail" }, same order of columns

func (*MySQL) IsConnected

func (my *MySQL) IsConnected() bool

IsConnected

func (*MySQL) Sum

func (my *MySQL) Sum(tableName string, field string, params map[string]interface{}) int64

Sum

func (*MySQL) Update

func (my *MySQL) Update(tableName string, data, where map[string]interface{}) int64

Update

@params tableName @params data, format:

map[string]interface{}{"url": "/index", "domain": "exsample.com"}

@params where, format:

map[string]interface{}{"id = ?": 1}
map[string]interface{}{"id = ? AND domain = ?": []interface{}{1, "exsample.com"}}

type SQLite

type SQLite struct {
	sql.Executor
	// contains filtered or unexported fields
}

func (*SQLite) Count

func (s *SQLite) Count(tableName string, params map[string]interface{}) int64

Count

func (*SQLite) Delete

func (s *SQLite) Delete(tableName string, where map[string]interface{}) int64

Delete

@params tableName @params where, format:

map[string]interface{}{"id = ?": 1}
map[string]interface{}{"id = ? AND domain = ?": []interface{}{1, "exsample.com"}}

func (*SQLite) FetchAll

func (s *SQLite) FetchAll(tableName string, params map[string]interface{}) ([]map[string]interface{}, error)

FetchAll

@params tableName @params params, including:where, group by, having, order by, limit, offset eg.

map[string]interface{}{
		"columns": "id, domain, url",
		"where": map[string]interface{}{
			"domain = ? AND url = ?": []interface{}{"www.exsample.com", "/mail"},
			which is equally as
			"domain = ?": "www.exsample.com",
			"url = ?": "/mail",
		},
		"groupBy": "id",
		"orderBy": "id DESC",
		"limit": 1,
		"offset": 1,
}

func (*SQLite) FetchOne

func (s *SQLite) FetchOne(tableName string, params map[string]interface{}) (map[string]interface{}, error)

FetchOne

refer to FetchAll

func (*SQLite) Init

func (s *SQLite) Init(config *config.Connect) bool

Init

func (*SQLite) Insert

func (s *SQLite) Insert(tableName string, columns []string, data ...[]interface{}) (int64, int64)

Insert

@params tableName @params columns. format: []string{"domain", "url"}, attention: when columns are empty, it means all columns @params data... format: []interface{}{ "exsample.com", "/mail" }, same order of columns

func (*SQLite) IsConnected

func (s *SQLite) IsConnected() bool

IsConnected

func (*SQLite) Sum

func (s *SQLite) Sum(tableName string, field string, params map[string]interface{}) int64

Sum

func (*SQLite) Update

func (s *SQLite) Update(tableName string, data, where map[string]interface{}) int64

Update

@params tableName @params data, format:

map[string]interface{}{"url": "/index", "domain": "exsample.com"}

@params where, format:

map[string]interface{}{"id = ?": 1}
map[string]interface{}{"id = ? AND domain = ?": []interface{}{1, "exsample.com"}}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL