Documentation ¶
Index ¶
- Variables
- func MigrationTableAuto(tableA, tableB *Table) (string, error)
- type DataBase
- func (db *DataBase) CheckExistTable(table *Table) bool
- func (db *DataBase) CheckHashTable(table *Table) bool
- func (db *DataBase) CreateTable(table *Table) error
- func (db *DataBase) DeleteValue(table *Table, value interface{}) error
- func (db *DataBase) DropTable(table *Table) error
- func (db *DataBase) Exec(handler func(*DataBase, *sql.Tx) error) (err error)
- func (db *DataBase) ExecWithTable(table *Table, handler func(*DataBase, *sql.Tx, *Table) error) (err error)
- func (db *DataBase) GetCount(table *Table) (count int64, err error)
- func (db *DataBase) GetLastId(table *Table) (id int64, err error)
- func (db *DataBase) InsertValue(table *Table, value interface{}) (lastId int64, err error)
- func (db *DataBase) MigrationTable(table *Table, handler func(*Table, *Table) (string, error), ...) error
- func (db *DataBase) NewTable(migrationNumber int64, tableName string, tableStruct interface{}) (*Table, error)
- func (db *DataBase) Query(table *Table, request string) (response interface{}, err error)
- func (db *DataBase) QuerySingle(table *Table, request string) (response interface{}, err error)
- func (db *DataBase) QuerySingleWithTable(table *Table, request string) (response interface{}, err error)
- func (db *DataBase) QueryWithTable(table *Table, request string) (response interface{}, err error)
- func (db *DataBase) ReplaceValue(table *Table, value interface{}) error
- func (db *DataBase) SchemeExportJson(sqlSchemeFilePath string) error
- func (db *DataBase) SchemeImportJson(sqlSchemeFilePath string) error
- func (db *DataBase) SelectAll(table *Table) (response interface{}, err error)
- func (db *DataBase) SelectValue(table *Table, where string) (response interface{}, err error)
- func (db *DataBase) SelectValueById(table *Table, id int64) (response interface{}, err error)
- func (db *DataBase) SelectValueSingle(table *Table, where string) (response interface{}, err error)
- func (db *DataBase) TruncateTable(table *Table) error
- func (db *DataBase) UpdateValue(table *Table, value interface{}) error
- type Table
- type TableField
Constants ¶
This section is empty.
Variables ¶
var ( ErrValueMustBeAStructure = fmt.Errorf("value must be a structure") ErrValueMustBeAStructureOrPointer = fmt.Errorf("value must be a structure or pointer") ErrValueDoesNotMatchTableType = fmt.Errorf("value does not match a table type") )
var ( ErrInvalidArgument = fmt.Errorf("invalid argument received") ErrTableIsNull = fmt.Errorf("table is null") ErrTableAlreadyExists = fmt.Errorf("table already exists") ErrTableDoesNotExists = fmt.Errorf("table does not exists") ErrTableDoesNotMigtated = fmt.Errorf("table does not migrated") ErrMigrationTableIsEmpty = fmt.Errorf("migration table is empty") ErrMigrationTableFieldIsEmpty = fmt.Errorf("migration table field is empty") ErrTableDoesNotHaveAutoIncrement = fmt.Errorf("table does not have auto increment") ErrTableDidNotInsertTheValue = fmt.Errorf("table did not insert the value") ErrTableDidNotReplaceTheValue = fmt.Errorf("table did not replace the value") ErrTableDidNotUpdateTheValue = fmt.Errorf("table did not update the value") ErrTableDidNotDeleteTheValue = fmt.Errorf("table did not delete the value") ErrResponseLessThanRequested = fmt.Errorf("response less than requested") ErrResponseMoreThanRequested = fmt.Errorf("response more than requested") )
Functions ¶
func MigrationTableAuto ¶
Types ¶
type DataBase ¶
type DataBase struct {
// contains filtered or unexported fields
}
func NewDatabase ¶
Creates a Database object specified by its database driver @sqlDriver and a driver-specific data source @sqlSource.
func (*DataBase) CheckExistTable ¶
Checks if received @table exist in database object
func (*DataBase) CheckHashTable ¶
Compares hashes of argument table object and table object from database map. Returns result of "not equal".
func (*DataBase) CreateTable ¶
Creates @table argument in current database. Saves table object in database scheme map.
func (*DataBase) DeleteValue ¶
Delete provided @value object (single or slice) from @table.
func (*DataBase) Exec ¶
Executes provided @handler closure with transaction control. If @handler returns non-nil error transaction rollback is executed.
func (*DataBase) ExecWithTable ¶
func (db *DataBase) ExecWithTable(table *Table, handler func(*DataBase, *sql.Tx, *Table) error) (err error)
Executes provided @handler closure with transaction control. Checks existence of @table in database. If @handler returns non-nil error transaction rollback is executed.
func (*DataBase) InsertValue ¶
Inserts provided @value object (single or slice) into @table. Returns last inserted object id.
func (*DataBase) MigrationTable ¶
func (*DataBase) Query ¶
Executes provided @request query for specified @table. Does not check presence of @table in database. Returns slice of values in interface{} object.
func (*DataBase) QuerySingle ¶
Executes provided @request query for specified @table. Does not check presence of @table in database. Returns single object in interface{} object.
func (*DataBase) QuerySingleWithTable ¶
func (db *DataBase) QuerySingleWithTable(table *Table, request string) (response interface{}, err error)
Executes provided @request query for specified @table. Checks presence of @table in database. Returns single object in interface{} object.
func (*DataBase) QueryWithTable ¶
Executes provided @request query for specified @table. Checks presence of @table in database. Returns slice of objects in interface{} object.
func (*DataBase) ReplaceValue ¶
Replaces provided @value object (single or slice) in @table.
func (*DataBase) SchemeExportJson ¶
func (*DataBase) SchemeImportJson ¶
func (*DataBase) SelectAll ¶
Selects from given @table all data as slice of objects. Result of select is returned as interface{} object Be careful with large dataset (not sure that driver will limit data chunk)
func (*DataBase) SelectValue ¶
Selects from given @table slice of objects with specified @where conditional string. Result of select is returned as interface{} object.
func (*DataBase) SelectValueById ¶
Selects from given @table single object with specified @id value.
func (*DataBase) SelectValueSingle ¶
Selects from given @table single object with specified @where conditional string.
func (*DataBase) TruncateTable ¶
Truncates specified @table in database (clear all rows).
func (*DataBase) UpdateValue ¶
Updates provided @value object (single or slice) in @table.
type Table ¶
type Table struct { GoName string `json:"goName"` GoType reflect.Type `json:"-"` SqlName string `json:"sqlName"` FieldNameArray []string `json:"fieldNameArray"` FieldMap map[string]*TableField `json:"fieldMap"` MigrationNumber int64 `json:"migrationNumber"` AutoIncrement *TableField `json:"autoIncrement"` }
func NewTable ¶
Creates a Table object with specified tableName and tableStruct. If tableName is not an empty string then it used as table name for sql queries in table methods. A tableStruct object must be a some custom struct object otherwise ErrValueMustBeAStructure will be returned. Each field of tableStruct is parsed and saved in Table object for future use.
type TableField ¶
type TableField struct { GoName string `json:"goName"` GoType reflect.Kind `json:"-"` SqlName string `json:"sqlName"` SqlType string `json:"sqlType"` IsPrimaryKey bool `json:"isPrimaryKey"` IsAutoIncrement bool `json:"isAutoIncrement"` IsUnique bool `json:"isUnique"` IsNotNull bool `json:"isNotNull"` ValueDefault *string `json:"valueDefault"` ValueCheck *string `json:"valueCheck"` }
func (*TableField) GetHash ¶
func (field *TableField) GetHash() string
func (*TableField) ReflectParse ¶
func (field *TableField) ReflectParse(reflectStructField reflect.StructField) bool
Parses given struct field. Return value is true if operation was successful. This method tries to parse struct field tag at first. If NAME or TYPE was not found in tag then it retrives appropriate info from field throught reflection.