Documentation ¶
Index ¶
- Constants
- func DistinctIdsStr(s string, split string) string
- func FmtSqlStr(sqlStr string, args ...interface{}) string
- func GetLikeSqlStr(likeType uint8, sqlStr, filedName, value string, printLog ...bool) string
- func GetSqlStr(sqlStr string, args ...interface{}) string
- func IndexForBF(isFont2End bool, s, substr string) int
- func NewCjLogger() *defaultLogger
- func SetLogger(logger Logger)
- type DBer
- type Logger
- type SqlStrObj
- func (s *SqlStrObj) Append(sqlStr string, args ...interface{}) *SqlStrObj
- func (s *SqlStrObj) Clone() *SqlStrObj
- func (s *SqlStrObj) GetSqlStr(title ...string) (sqlStr string)
- func (s *SqlStrObj) GetTotalSqlStr(title ...string) (findSqlStr string)
- func (s *SqlStrObj) Int2Str(num int64) string
- func (s *SqlStrObj) SetAllLike(filedName string, val string)
- func (s *SqlStrObj) SetBetween(filedName string, leftVal, rightVal interface{}) *SqlStrObj
- func (s *SqlStrObj) SetCallerSkip(skip uint8) *SqlStrObj
- func (s *SqlStrObj) SetGroupByStr(groupByStr string) *SqlStrObj
- func (s *SqlStrObj) SetInsertValues(args ...interface{}) *SqlStrObj
- func (s *SqlStrObj) SetInsertValuesArgs(sqlStr string, args ...interface{}) *SqlStrObj
- func (s *SqlStrObj) SetLeftLike(filedName string, val string)
- func (s *SqlStrObj) SetLimit(page, size int32) *SqlStrObj
- func (s *SqlStrObj) SetLimitStr(limitStr string) *SqlStrObj
- func (s *SqlStrObj) SetOrWhere(filedName string, args ...interface{}) *SqlStrObj
- func (s *SqlStrObj) SetOrWhereArgs(sqlStr string, args ...interface{}) *SqlStrObj
- func (s *SqlStrObj) SetOrderByStr(orderByStr string) *SqlStrObj
- func (s *SqlStrObj) SetPrintLog(isPrint bool) *SqlStrObj
- func (s *SqlStrObj) SetRightLike(filedName string, val string)
- func (s *SqlStrObj) SetUpdateValue(filedName string, arg interface{}) *SqlStrObj
- func (s *SqlStrObj) SetUpdateValueArgs(sqlStr string, arg ...interface{}) *SqlStrObj
- func (s *SqlStrObj) SetWhere(filedName string, args ...interface{}) *SqlStrObj
- func (s *SqlStrObj) SetWhereArgs(sqlStr string, args ...interface{}) *SqlStrObj
- func (s *SqlStrObj) SqlIsEmpty() bool
- func (s *SqlStrObj) SqlStrLen() int
- func (s *SqlStrObj) UInt2Str(num uint64) string
- func (s *SqlStrObj) ValueIsEmpty() bool
- func (s *SqlStrObj) ValueStrLen() int
- func (s *SqlStrObj) WhereIsEmpty() bool
- func (s *SqlStrObj) WhereStrLen() int
- type Table
- func (t *Table) Count(total interface{}) error
- func (t *Table) Delete(deleteObj ...interface{}) *Table
- func (t *Table) Exec() (sql.Result, error)
- func (t *Table) FindAll(dest interface{}) error
- func (t *Table) FindOne(dest interface{}) error
- func (t *Table) GetSqlObj() *SqlStrObj
- func (t *Table) Group(groupSqlStr string) *Table
- func (t *Table) Insert(insertObjs ...interface{}) (sql.Result, error)
- func (t *Table) Limit(page int32, size int32) *Table
- func (t *Table) OrWhere(sqlStr string, args ...interface{}) *Table
- func (t *Table) OrderBy(sqlStr string) *Table
- func (t *Table) PrintSql(is bool) *Table
- func (t *Table) Query() (*sql.Rows, error)
- func (t *Table) QueryRowScan(dest ...interface{}) error
- func (t *Table) Raw(sql interface{}) *Table
- func (t *Table) Select(fileds string) *Table
- func (t *Table) SelectAll() *Table
- func (t *Table) Update(updateObj interface{}) *Table
- func (t *Table) Where(sqlStr string, args ...interface{}) *Table
- type TableColInfo
Constants ¶
const ( INSERT uint8 DELETE SELECT UPDATE // sql LIKE 语句 ALK // 全模糊 如: xxx LIKE "%xxx%" RLK // 右模糊 如: xxx LIKE "xxx%" LLK // 左模糊 如: xxx LIKE "%xxx" )
Variables ¶
This section is empty.
Functions ¶
func DistinctIdsStr ¶
DistinctIdsStr 将输入拼接 id 参数按照指定字符进行去重, 如: DistinctIdsStr("12345,123,20,123,20,15", ",") => 12345,123,20,15
func GetLikeSqlStr ¶
GetLikeSqlStr 针对 LIKE 语句, 只有一个条件 如: obj := GetLikeSqlStr(ALK, "SELECT id, username FROM sys_user", "name", "xue")
=> SELECT id, username FROM sys_user WHERE name LIKE "%xue%"
func IndexForBF ¶
IndexForBF 查找, 通过 BF 算法来获取匹配的 index isFont2End 是否从主串前向后遍历查找 如果匹配的内容靠前建议 isFont2End=true, 反之 false todo 暂时只能匹配英文
func NewCjLogger ¶
func NewCjLogger() *defaultLogger
Types ¶
type SqlStrObj ¶
type SqlStrObj struct {
// contains filtered or unexported fields
}
SqlStrObj 拼接 sql 对象
func NewCacheSql ¶
NewCacheSql 初始化, 支持占位符, 此函数比 NewSql 更加高效
- 注意: a. sqlStr 字符长度必须大于 6 b. 此函数只支持调用一次 GetSqlStr 方法, 如果要调用多次需要使用 NewSql c. 此函数不支持 Clone 方法, 如果要使用 Clone 需要调用 NewSql 说明: b, c 是防止同一对象被两个协程共同使用
占位符为: ?, 直接根据 args 中类型来自动推动 arg 的类型 第一种用法: 根据 args 中类型来自动推动 arg 的类型 如: NewCacheSql("SELECT username, password FROM sys_user WHERE username = ? AND password = ?", "test", 123) => SELECT username, password FROM sys_user WHERE username = "test" AND password = 123
第二种用法: 当 arg 为 []int, 暂时支持 []int, []int32, []int64 如: NewCacheSql("SELECT username, password FROM sys_user WHERE id IN (?)", []int{1, 2, 3}) => SELECT username, password FROM sys_user WHERE id IN (1,2,3)
占位符为: ?d, 只会把数字型的字符串转为数字型, 如果是字母的话会被转义为 0, 如: "123" => 123; []string{"1", "2", "3"} => 1,2,3 第一种用法: 当 arg 为字符串时, 又想不加双引号就用这个 如: NewCacheSql("SELECT username, password FROM sys_user WHERE id = ?d", "123") => SELECT username, password FROM sys_user WHERE id = 123
第二种用法: 当 arg 为 []string, 又想把解析后的单个元素不加引号 如: NewCacheSql("SELECT username, password FROM sys_user WHERE id IN (?d)", []string{"1", "2", "3"}) => SELECT username, password FROM sys_user WHERE id IN (1,2,3)
- 占位符为: ?v, 这样会让字符串类型不加引号, 原样输出, 如: "test" => test; 第一种用法: 当 arg 为字符串时, 又想不加双引号就用这个, 注: 只支持 arg 为字符串类型 如: NewCacheSql("SELECT username, password FROM ?v WHERE id = ?d", "sys_user", "123") => SELECT username, password FROM sys_user WHERE id = 123
func (*SqlStrObj) GetSqlStr ¶
GetSqlStr 获取最终 sqlStr, 默认打印 sqlStr, title[0] 为打印 log 的标题; title[1] 为 sqlStr 的结束符, 默认为 ";" 注意: 通过 NewCacheSql 初始化对象的只能调用一次此函数, 因为调用后会清空所有buf; 通过 NewSql 初始化对象的可以调用多次此函数
func (*SqlStrObj) GetTotalSqlStr ¶
GetTotalSqlStr 将查询条件替换为 COUNT(*), 默认打印 sqlStr, title 为打印 log 的标题, 对外只支持一个参数, 多传没有用
func (*SqlStrObj) SetAllLike ¶
SetAllLike 设置全模糊, 如: xxx LIKE "%test%"
func (*SqlStrObj) SetBetween ¶
SetBetween 设置 BETWEEN ? AND ?
func (*SqlStrObj) SetCallerSkip ¶
SetCallerSkip 设置打印调用跳过的层数
func (*SqlStrObj) SetGroupByStr ¶
SetGroupByStr 设置 groupBy
func (*SqlStrObj) SetInsertValues ¶
SetInsertValues 批量插入拼接, 如: xxx VALUES (xxx, xxx), (xxx, xxx)
func (*SqlStrObj) SetInsertValuesArgs ¶
SetInsertValuesArgs 支持占位符, 如 SetInsertValuesArg("(?, ?, ?d)", "test", "12345", "123456") 或 SetInsertValuesArg("?, ?, ?d", "test", "12345", "123456") => ("test", "123456", 123456) 批量插入拼接, 如: xxx VALUES (xxx, xxx), (xxx, xxx)
func (*SqlStrObj) SetLeftLike ¶
SetLeftLike 设置左模糊查询, 如: xxx LIKE "%test"
func (*SqlStrObj) SetLimitStr ¶
SetLimitStr 字符串来设置
func (*SqlStrObj) SetOrWhere ¶
SetOrWhere 设置过滤条件, 连接符为 OR 如果 len = 1 的时候, 会拼接成: filed = arg 如果 len = 2 的时候, 会拼接成: filed arg[0] arg[1]
func (*SqlStrObj) SetOrWhereArgs ¶
SetOrWhereArgs 支持占位符 如: SetOrWhereArgs("username = ? AND password = ?d", "test", "123") => xxx OR "username = "test" AND password = 123
func (*SqlStrObj) SetOrderByStr ¶
SetOrderByStr 设置排序
func (*SqlStrObj) SetPrintLog ¶
SetPrintLog 设置是否打印 sqlStr log
func (*SqlStrObj) SetRightLike ¶
SetRightLike 设置右模糊查询, 如: xxx LIKE "test%"
func (*SqlStrObj) SetUpdateValue ¶
SetUpdateValue update 语句中, 设置字段值
func (*SqlStrObj) SetUpdateValueArgs ¶
SetUpdateValueArgs 支持占位符 如: SetUpdateValueArgs("username = ?, age = ?d", "test", "20") => username = "test", age = 20
func (*SqlStrObj) SetWhere ¶
SetWhere 设置过滤条件, 连接符为 AND 如果 len = 1 的时候, 会拼接成: filed = arg 如果 len = 2 的时候, 会拼接成: filed arg[0] arg[1]
func (*SqlStrObj) SetWhereArgs ¶
SetWhereArgs 支持占位符 如: SetWhereArgs("username = ? AND password = ?d", "test", "123") => xxx AND "username = "test" AND password = 123
func (*SqlStrObj) ValueIsEmpty ¶
ValueIsEmpty insert/update 中 value 是否为空
type Table ¶
type Table struct {
// contains filtered or unexported fields
}
func NewTable ¶
NewTable 初始化 args 支持两个参数 args[0]: 会解析为 tableName, 这里如果有值, 在进行操作表的时候就会以此表为准, 如果为空时, 在通过对象进行操作时按驼峰规则进行解析表名, 解析规则如: UserInfo => user_info args[1]: 会解析为待解析的 tag
func (*Table) OrWhere ¶
OrWhere 支持占位符 如: OrWhere("username = ? AND password = ?d", "test", "123") => xxx OR "username = "test" AND password = 123
func (*Table) QueryRowScan ¶
QueryRowScan 单行查询
type TableColInfo ¶
type TableColInfo struct { Field string Type string Null string Key string Default sql.NullString Extra string }
TableColInfo 表列详情