silk

package module
v0.0.0-...-b79b1f2 Latest Latest
Warning

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

Go to latest
Published: May 22, 2019 License: MIT Imports: 10 Imported by: 0

README

silk

又双叒叕一个golang的orm框架,取名silk,意思是使用起来如丝般顺滑。目标是在保证一定性能的情况下,尽可能做到最优雅,最大力度的提升团队开发效率。

特性

问:silk跟别的传统的golang orm框架比有什么不同?

答:orm存在的意义就是为了开发效率,使得代码更简洁更清晰明了,让妈妈再也不用担心我面对一堆杂乱的sql时无从下手。silk把链式调用做到极度顺滑,同步提供cli工具让你自动生成模型文件,开箱即用。结构体的调用降低代码出错率。同步提供强大的数据处理工具collection,让你处理各种数据时不需要再自己造轮子。大大的提升开发效率。

  • 代码生成,制定更优雅的api与更好的性能(规避反射)
  • 特制数据结构,包含多种算法,多种数据类型支持

todo

使用例子

https://github.com/goctopus/silk/blob/master/example/main.go

如何参与开发

如何参与开发

Documentation

Index

Constants

This section is empty.

Variables

View Source
var BuilderPool = sync.Pool{
	New: func() interface{} {
		return &Builder{
			SqlComponent: dialect.SqlComponent{
				Fields:     make([]string, 0),
				TableName:  "",
				Args:       make([]interface{}, 0),
				Wheres:     make([]dialect.Where, 0),
				Leftjoins:  make([]dialect.Join, 0),
				UpdateRaws: make([]dialect.RawUpdate, 0),
				WhereRaws:  "",
			},
			connection: DBInstance.clone(),
		}
	},
}

Functions

func InterfaceToBool

func InterfaceToBool(value interface{}) bool

func InterfaceToFloat64

func InterfaceToFloat64(value interface{}) float64

func InterfaceToInt64

func InterfaceToInt64(value interface{}) int64

func InterfaceToString

func InterfaceToString(value interface{}) string

func Lcfirst

func Lcfirst(str string) string

func RecycleSql

func RecycleSql(sql *Builder)

func SetColVarType

func SetColVarType(colVar *[]interface{}, i int, typeName string)

func SetResultValue

func SetResultValue(result *map[string]interface{}, index string, colVar interface{}, typeName string)

func Transfer

func Transfer(sourceMap map[string]interface{}, targetStruct interface{}) error

Types

type Builder

type Builder struct {
	dialect.SqlComponent
	// contains filtered or unexported fields
}

func Table

func Table(table string) *Builder

func (*Builder) All

func (sql *Builder) All() ([]map[string]interface{}, error)

func (*Builder) Count

func (sql *Builder) Count() (int64, error)

func (*Builder) Delete

func (sql *Builder) Delete() error

func (*Builder) Exec

func (sql *Builder) Exec() (int64, error)

func (*Builder) Find

func (sql *Builder) Find(arg interface{}) (map[string]interface{}, error)

func (*Builder) First

func (sql *Builder) First() (map[string]interface{}, error)

func (*Builder) FormFirst

func (sql *Builder) FormFirst(v interface{}) error

func (*Builder) Insert

func (sql *Builder) Insert(values dialect.H) (int64, error)

func (*Builder) LeftJoin

func (sql *Builder) LeftJoin(table string, fieldA string, operation string, fieldB string) *Builder

func (*Builder) OrderBy

func (sql *Builder) OrderBy(filed string, order string) *Builder

func (*Builder) Select

func (sql *Builder) Select(fields ...string) *Builder

func (*Builder) ShowColumns

func (sql *Builder) ShowColumns() ([]map[string]interface{}, error)

func (*Builder) ShowTables

func (sql *Builder) ShowTables() ([]map[string]interface{}, error)

func (*Builder) Skip

func (sql *Builder) Skip(offset int) *Builder

func (*Builder) Table

func (sql *Builder) Table(table string) *Builder

func (*Builder) Take

func (sql *Builder) Take(take int) *Builder

func (*Builder) Update

func (sql *Builder) Update(values dialect.H) (int64, error)

func (*Builder) UpdateRaw

func (sql *Builder) UpdateRaw(raw string, args ...interface{}) *Builder

func (*Builder) Where

func (sql *Builder) Where(field string, operation string, arg interface{}) *Builder

func (*Builder) WhereIn

func (sql *Builder) WhereIn(field string, arg []interface{}) *Builder

func (*Builder) WhereNotIn

func (sql *Builder) WhereNotIn(field string, arg []interface{}) *Builder

func (*Builder) WhereRaw

func (sql *Builder) WhereRaw(raw string, args ...interface{}) *Builder

type DB

type DB struct {
	Value        interface{}
	Error        error
	RowsAffected int64
	// contains filtered or unexported fields
}

DB contains information for current db connection

var DBInstance *DB

func Open

func Open(dialect string, args ...interface{}) (db *DB, err error)

Open initialize a new db connection, need to import driver first.

func (*DB) Exec

func (db *DB) Exec(query string, args ...interface{}) sql.Result

func (*DB) Query

func (db *DB) Query(query string, args ...interface{}) []map[string]interface{}

type Dialect

type Dialect interface {
	// GetName get dialect's name
	GetName() string

	// ShowColumns show columns of specified table
	ShowColumns(table string) string

	// ShowTables show tables of database
	ShowTables() string

	// Insert
	Insert(comp *dialect.SqlComponent) string

	// Delete
	Delete(comp *dialect.SqlComponent) string

	// Update
	Update(comp *dialect.SqlComponent) string

	// Select
	Select(comp *dialect.SqlComponent) string
}

func GetDialectByDriver

func GetDialectByDriver(driver string) Dialect

type H

type H map[string]interface{}

type Model

type Model struct {
	// db conn
	DB *Builder

	// table
	Table string
}

func (*Model) Clean

func (m *Model) Clean()

func (*Model) Where

func (m *Model) Where(field string, op string, value interface{}) *Builder

Directories

Path Synopsis
drivers

Jump to

Keyboard shortcuts

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