dbutils

package
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2022 License: MIT Imports: 7 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	//表名不能为空
	ErrTableEmpty = errors.New("The table name cannot be empty")
	//插入内容不能为空
	ErrInsertEmpty = errors.New("The insert cannot be empty")
	//更新内容不能为空
	ErrUpdateEmpty = errors.New("The update cannot be empty")
)

Functions

func CamelCase

func CamelCase(s string) string

_my_field_name_2 转成 XMyFieldName_2.

func DbConnect

func DbConnect(dsn string) (*sql.DB, error)

连接db

func DeleteSql

func DeleteSql(connect *sql.DB, insSql string, args ...interface{}) (num int64, err error)

删除记录sql

func FiledType2GoType

func FiledType2GoType(fieldTypeStr string) string

db字段类型转go类型, fieldTypeStr=bigint(20)

func GenerateGormModel

func GenerateGormModel(connect *sql.DB, dbName string, tableNames []string, cfg map[string]string) map[string]string

生成gorm的model结构体

func GetDbConnect

func GetDbConnect(dbnameCode, dsn string) (*sql.DB, error)

func GetDsn

func GetDsn(dbConfig map[string]interface{}) string

dsn := GetDsn(map[string]interface{}{"username":"root","password":"88888888"})

func GetFieldComment

func GetFieldComment(field map[string]string) string

获取字段说明

func GetHashOrd

func GetHashOrd(str string) int64

func GetHashOrd127

func GetHashOrd127(str string) int64

返回0~127

func GetLikeStr

func GetLikeStr(str string, pos int) string

func GetSimpleTableInfo

func GetSimpleTableInfo(connect *sql.DB, dbName string, tableNames []string) []map[string]string

func GetTableFields

func GetTableFields(connect *sql.DB, tbl string) ([]map[string]string, error)

获取表字段信息

func GormModelFormat

func GormModelFormat(table map[string]string, fields []map[string]string, cfg map[string]string) string

table=["Name":"表名", "Comment":"表注解"], cfg=["packageName":"包名", "ignoreField":"id,is_delete,create_time,update_time,delete_time,modify_time","appendStructCode":"GormCommonField","trimTblPrefix":"t_","structNameSuffix":"Model"]

func InsertSql

func InsertSql(connect *sql.DB, insSql string, args ...interface{}) (id int64, err error)
  执行插入记录sql
  示例:insSql := "insert INTO t_user_token_1(user_id,user_token) values(?,?)"
		id,err := InsertSql(connect, insSql, "1000", "token123")

func JoinInt2Str

func JoinInt2Str(data []int, sep string) string

func JoinInt642Str

func JoinInt642Str(data []int64, sep string) string

func Md5V1

func Md5V1(str string) string

md5加密

func PinConditionIn

func PinConditionIn(field string, condition string, values []interface{}) (string, []interface{})

in, v := PinWhereIn("username", "in", []interface{}{11, 22,33}) 返回 username IN (?,?,?) 、[11 22 33]

func PinInStr

func PinInStr(strs []string) string

func PinWhereNotIn

func PinWhereNotIn(field string, values []interface{}) (string, []interface{})

in, v := PinWhereNotIn("username", []interface{}{11, 22,33}) 返回 username NOT IN (?,?,?) 、[11 22 33]

func SelectOne

func SelectOne(connect *sql.DB, sqlStr string, args ...interface{}) (map[string]string, error)

查询单条记录

func SelectRows

func SelectRows(connect *sql.DB, sqlStr string, args ...interface{}) ([]map[string]string, error)

查询多条记录

func ShowCreateTable

func ShowCreateTable(connect *sql.DB, tblName string) (string, error)

获取创建表sql语句

func ShowTables

func ShowTables(connect *sql.DB) []string

获取所有表名

func StrInSlice

func StrInSlice(a string, list []string) bool

list切片中是否有a字符串

func UpdateSql

func UpdateSql(connect *sql.DB, insSql string, args ...interface{}) (num int64, err error)
  更新记录sql
  示例:upSql := "update t_user_token_1 set user_token=?,update_time=? where user_id=? order by id desc limit 1"
	id,err := UpdateSql(connect, upSql,  "token123abc222", time.Now().Unix(),"1000")

func WenHaoPlaceholders

func WenHaoPlaceholders(n int) string

func WrapField

func WrapField(field string) string

func WrapTable

func WrapTable(field string) string

Types

type GormModel

type GormModel struct {
	ID         int64 `gorm:"primary_key;Column:id"`
	IsDelete   int8  `gorm:"Column:is_delete;DEFAULT:0"`
	CreateTime int64 `gorm:"Column:create_time"`
	UpdateTime int64 `gorm:"Column:update_time"`
	DeleteTime int64 `gorm:"Column:delete_time"`
}

type MysqlDsn

type MysqlDsn struct {
	// contains filtered or unexported fields
}

func NewMysqlDsn

func NewMysqlDsn(dbConfig map[string]interface{}) *MysqlDsn

mysqlDsnObj := dbutils.NewMysqlDsn(map[string]interface{}{"dbname":"db_user","username":"root","password":"123456","port":3307})

func (*MysqlDsn) GetCharset

func (m *MysqlDsn) GetCharset() string

func (*MysqlDsn) GetDbname

func (m *MysqlDsn) GetDbname() string

func (*MysqlDsn) GetExtparam

func (m *MysqlDsn) GetExtparam() string

func (*MysqlDsn) GetHost

func (m *MysqlDsn) GetHost() string

func (*MysqlDsn) GetPassword

func (m *MysqlDsn) GetPassword() string

func (*MysqlDsn) GetPort

func (m *MysqlDsn) GetPort() string

func (*MysqlDsn) GetUsername

func (m *MysqlDsn) GetUsername() string

func (*MysqlDsn) Key

func (m *MysqlDsn) Key() string

func (*MysqlDsn) ToDsn

func (m *MysqlDsn) ToDsn() string

type SQLBuilderDelete

type SQLBuilderDelete struct {
	// contains filtered or unexported fields
}

func NewSQLBuilderDelete

func NewSQLBuilderDelete() *SQLBuilderDelete

func (*SQLBuilderDelete) ConditionWhere

func (sqlb *SQLBuilderDelete) ConditionWhere(operator string, field string, condition string, value interface{}) *SQLBuilderDelete

考虑重复调用,operator=AND、OR, condition="=,!="

func (*SQLBuilderDelete) GetSQL

func (sqlb *SQLBuilderDelete) GetSQL() (string, error)

func (*SQLBuilderDelete) GetWhereParamValues

func (sqlb *SQLBuilderDelete) GetWhereParamValues() []interface{}

func (*SQLBuilderDelete) OrWhere

func (sqlb *SQLBuilderDelete) OrWhere(field string, condition string, value interface{}) *SQLBuilderDelete

func (*SQLBuilderDelete) OrWhereIn

func (sqlb *SQLBuilderDelete) OrWhereIn(field string, values ...interface{}) *SQLBuilderDelete

func (*SQLBuilderDelete) OrWhereNotIn

func (sqlb *SQLBuilderDelete) OrWhereNotIn(field string, values ...interface{}) *SQLBuilderDelete

func (*SQLBuilderDelete) OrWhereRaw

func (sqlb *SQLBuilderDelete) OrWhereRaw(raw string, values ...interface{}) *SQLBuilderDelete

OrWhereRaw("(`age` = ? OR `sex` = ?) AND `class` = ?", 7, 1, "一年级2班")

func (*SQLBuilderDelete) OrderBy

func (sqlb *SQLBuilderDelete) OrderBy(order string) *SQLBuilderDelete

func (*SQLBuilderDelete) Raw

func (sqlb *SQLBuilderDelete) Raw(operator string, raw string, values []interface{}) *SQLBuilderDelete

func (*SQLBuilderDelete) SetLimit

func (sqlb *SQLBuilderDelete) SetLimit(rowCount string) *SQLBuilderDelete

func (*SQLBuilderDelete) SetTable

func (sqlb *SQLBuilderDelete) SetTable(tbl string) *SQLBuilderDelete

func (*SQLBuilderDelete) Where

func (sqlb *SQLBuilderDelete) Where(field string, condition string, value interface{}) *SQLBuilderDelete

func (*SQLBuilderDelete) WhereIn

func (sqlb *SQLBuilderDelete) WhereIn(field string, values ...interface{}) *SQLBuilderDelete

func (*SQLBuilderDelete) WhereNotIn

func (sqlb *SQLBuilderDelete) WhereNotIn(field string, values ...interface{}) *SQLBuilderDelete

func (*SQLBuilderDelete) WhereRaw

func (sqlb *SQLBuilderDelete) WhereRaw(raw string, values ...interface{}) *SQLBuilderDelete

WhereRaw("`title` = ?", "hello")

type SQLBuilderInsert

type SQLBuilderInsert struct {
	// contains filtered or unexported fields
}

func NewSQLBuilderInsert

func NewSQLBuilderInsert() *SQLBuilderInsert

func (*SQLBuilderInsert) GetParamValues

func (sqlb *SQLBuilderInsert) GetParamValues() []interface{}

func (*SQLBuilderInsert) GetSql

func (sqlb *SQLBuilderInsert) GetSql() (string, error)

INSERT INTO [表名] ([字段名]) VALUES ([要插入的值]): INSERT INTO `bbs_user`(`email`,`username`,`qq`) VALUES (?,?,?)

func (*SQLBuilderInsert) SetInsertData

func (sqlb *SQLBuilderInsert) SetInsertData(fileds []string, values ...interface{}) *SQLBuilderInsert

SetInsertData([]string{"`name`", "`age`"}, "tom", 18)

func (*SQLBuilderInsert) SetTable

func (sqlb *SQLBuilderInsert) SetTable(tbl string) *SQLBuilderInsert

type SQLBuilderSelect

type SQLBuilderSelect struct {
	// contains filtered or unexported fields
}

func NewSQLBuilderSelect

func NewSQLBuilderSelect() *SQLBuilderSelect

func (*SQLBuilderSelect) ConditionWhere

func (sqlb *SQLBuilderSelect) ConditionWhere(operator string, field string, condition string, value interface{}) *SQLBuilderSelect

考虑重复调用,operator=AND、OR, condition="=,!="

func (*SQLBuilderSelect) GetSQL

func (sqlb *SQLBuilderSelect) GetSQL() (string, error)

func (*SQLBuilderSelect) GetWhereParamValues

func (sqlb *SQLBuilderSelect) GetWhereParamValues() []interface{}

func (*SQLBuilderSelect) GroupBy

func (sqlb *SQLBuilderSelect) GroupBy(fields ...string) *SQLBuilderSelect

GroupBy("`age`", "`id`")

func (*SQLBuilderSelect) JoinRaw

func (sqlb *SQLBuilderSelect) JoinRaw(join string, values ...interface{}) *SQLBuilderSelect

JoinRaw("LEFT JOIN `t_user` as `t2` ON `t1`.`userid` = `t2`.`userid`").

func (*SQLBuilderSelect) OrWhere

func (sqlb *SQLBuilderSelect) OrWhere(field string, condition string, value interface{}) *SQLBuilderSelect

func (*SQLBuilderSelect) OrWhereIn

func (sqlb *SQLBuilderSelect) OrWhereIn(field string, values ...interface{}) *SQLBuilderSelect

func (*SQLBuilderSelect) OrWhereNotIn

func (sqlb *SQLBuilderSelect) OrWhereNotIn(field string, values ...interface{}) *SQLBuilderSelect

func (*SQLBuilderSelect) OrWhereRaw

func (sqlb *SQLBuilderSelect) OrWhereRaw(raw string, values ...interface{}) *SQLBuilderSelect

OrWhereRaw("(`age` = ? OR `sex` = ?) AND `class` = ?", 7, 1, "一年级2班")

func (*SQLBuilderSelect) OrderBy

func (sqlb *SQLBuilderSelect) OrderBy(order string) *SQLBuilderSelect

func (*SQLBuilderSelect) Raw

func (sqlb *SQLBuilderSelect) Raw(operator string, raw string, values []interface{}) *SQLBuilderSelect

func (*SQLBuilderSelect) Select

func (sqlb *SQLBuilderSelect) Select(fields ...string) *SQLBuilderSelect

func (*SQLBuilderSelect) SetTable

func (sqlb *SQLBuilderSelect) SetTable(tbl string) *SQLBuilderSelect

Table("`t_user_ext` as t1")

func (*SQLBuilderSelect) Where

func (sqlb *SQLBuilderSelect) Where(field string, condition string, value interface{}) *SQLBuilderSelect

func (*SQLBuilderSelect) WhereIn

func (sqlb *SQLBuilderSelect) WhereIn(field string, values ...interface{}) *SQLBuilderSelect

func (*SQLBuilderSelect) WhereNotIn

func (sqlb *SQLBuilderSelect) WhereNotIn(field string, values ...interface{}) *SQLBuilderSelect

func (*SQLBuilderSelect) WhereRaw

func (sqlb *SQLBuilderSelect) WhereRaw(raw string, values ...interface{}) *SQLBuilderSelect

WhereRaw("`title` = ?", "hello")

type SQLBuilderUpdate

type SQLBuilderUpdate struct {
	// contains filtered or unexported fields
}

func NewSQLBuilderUpdate

func NewSQLBuilderUpdate() *SQLBuilderUpdate

func (*SQLBuilderUpdate) ConditionWhere

func (sqlb *SQLBuilderUpdate) ConditionWhere(operator string, field string, condition string, value interface{}) *SQLBuilderUpdate

考虑重复调用,operator=AND、OR,condition=<、<=、=、!=、>

func (*SQLBuilderUpdate) GetParamValues

func (sqlb *SQLBuilderUpdate) GetParamValues() []interface{}

func (*SQLBuilderUpdate) GetSQL

func (sqlb *SQLBuilderUpdate) GetSQL() (string, error)

UPDATE [表名] [SET 子句] [WHERE 子句] [ORDER BY ...] [LIMIT row_count]

func (*SQLBuilderUpdate) GetSetParamValues

func (sqlb *SQLBuilderUpdate) GetSetParamValues() []interface{}

func (*SQLBuilderUpdate) GetWhereParamValues

func (sqlb *SQLBuilderUpdate) GetWhereParamValues() []interface{}

func (*SQLBuilderUpdate) OrWhere

func (sqlb *SQLBuilderUpdate) OrWhere(field string, condition string, value interface{}) *SQLBuilderUpdate

func (*SQLBuilderUpdate) OrWhereIn

func (sqlb *SQLBuilderUpdate) OrWhereIn(field string, values ...interface{}) *SQLBuilderUpdate

func (*SQLBuilderUpdate) OrWhereNotIn

func (sqlb *SQLBuilderUpdate) OrWhereNotIn(field string, values ...interface{}) *SQLBuilderUpdate

func (*SQLBuilderUpdate) OrWhereRaw

func (sqlb *SQLBuilderUpdate) OrWhereRaw(raw string, values ...interface{}) *SQLBuilderUpdate

OrWhereRaw("(`age` = ? OR `sex` = ?) AND `class` = ?", 7, 1, "一年级2班")

func (*SQLBuilderUpdate) OrderBy

func (sqlb *SQLBuilderUpdate) OrderBy(order string) *SQLBuilderUpdate

func (*SQLBuilderUpdate) Raw

func (sqlb *SQLBuilderUpdate) Raw(operator string, raw string, values []interface{}) *SQLBuilderUpdate

func (*SQLBuilderUpdate) SetLimit

func (sqlb *SQLBuilderUpdate) SetLimit(rowCount string) *SQLBuilderUpdate

func (*SQLBuilderUpdate) SetTable

func (sqlb *SQLBuilderUpdate) SetTable(tbl string) *SQLBuilderUpdate

func (*SQLBuilderUpdate) SetUpdateData

func (sqlb *SQLBuilderUpdate) SetUpdateData(fileds []string, values ...interface{}) *SQLBuilderUpdate

func (*SQLBuilderUpdate) Where

func (sqlb *SQLBuilderUpdate) Where(field string, condition string, value interface{}) *SQLBuilderUpdate

func (*SQLBuilderUpdate) WhereIn

func (sqlb *SQLBuilderUpdate) WhereIn(field string, values ...interface{}) *SQLBuilderUpdate

func (*SQLBuilderUpdate) WhereNotIn

func (sqlb *SQLBuilderUpdate) WhereNotIn(field string, values ...interface{}) *SQLBuilderUpdate

func (*SQLBuilderUpdate) WhereRaw

func (sqlb *SQLBuilderUpdate) WhereRaw(raw string, values ...interface{}) *SQLBuilderUpdate

WhereRaw("`title` = ?", "hello")

type SplitDbAndTbl

type SplitDbAndTbl struct {
	// contains filtered or unexported fields
}

分库分表数量结构体

func NewSplitDbAndTbl

func NewSplitDbAndTbl(dbnum, tblnum int64) SplitDbAndTbl

func (SplitDbAndTbl) GetDBBaseByStrUserid

func (t SplitDbAndTbl) GetDBBaseByStrUserid(userid string) map[string]int64

字符串型的用户ID,返回分配的库号和表号

func (SplitDbAndTbl) GetDBBaseByUserid

func (t SplitDbAndTbl) GetDBBaseByUserid(userid uint64) map[string]int64

返回分配的库号和表号

func (SplitDbAndTbl) GetDbNum

func (t SplitDbAndTbl) GetDbNum(sVal string) (dbnum int64, err error)

入参sVal值是可以转为int64类型的字符串,获取分配的库号

func (SplitDbAndTbl) GetDbNum4int64 added in v1.0.1

func (t SplitDbAndTbl) GetDbNum4int64(ival int64) (dbnum int64, err error)

func (SplitDbAndTbl) GetTblNum

func (t SplitDbAndTbl) GetTblNum(sVal string) (tblnum int64, err error)

入参sVal值是可以转为int64类型的字符串,获取分配的表号

func (SplitDbAndTbl) GetTblNum4int64 added in v1.0.1

func (t SplitDbAndTbl) GetTblNum4int64(ival int64) (tblnum int64, err error)

func (SplitDbAndTbl) GetTotalDbNum

func (t SplitDbAndTbl) GetTotalDbNum() int64

func (SplitDbAndTbl) GetTotalTblNum

func (t SplitDbAndTbl) GetTotalTblNum() int64

Jump to

Keyboard shortcuts

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