1
This commit is contained in:
parent
1f205705b3
commit
1301cb260f
24
dbpool.go
24
dbpool.go
@ -2,6 +2,7 @@ package f5
|
||||
|
||||
import (
|
||||
"q5"
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@ -14,7 +15,7 @@ type dbPool struct {
|
||||
style int32
|
||||
dataSourceHash map[string]*q5.Mysql
|
||||
}
|
||||
n
|
||||
|
||||
func (this *dbPool) init() {
|
||||
}
|
||||
|
||||
@ -28,7 +29,7 @@ func (this *dbPool) Select(
|
||||
whereKv [][]string,
|
||||
cb QueryResultCb) {
|
||||
params := []string{}
|
||||
sql := "SELECT " + this.joinSelectFields(fields) + " FROM " + tblName + " WHERE 1=1"
|
||||
sql := fmt.Sprintf("SELECT %s FROM %s WHERE 1=1 ", this.joinSelectFields(fields), tblName)
|
||||
this.joinWhere(&sql, ¶ms, whereKv)
|
||||
this.internalQuery(dataSource, sql, params, cb)
|
||||
}
|
||||
@ -39,7 +40,7 @@ func (this *dbPool) OrmSelect(
|
||||
whereKv [][]string,
|
||||
cb QueryResultCb) {
|
||||
params := []string{}
|
||||
sql := "SELECT * FROM " + tblName + " WHERE 1=1"
|
||||
sql := fmt.Sprintf("SELECT * FROM %s WHERE 1=1 ", tblName)
|
||||
this.joinWhere(&sql, ¶ms, whereKv)
|
||||
this.internalQuery(dataSource, sql, params, cb)
|
||||
}
|
||||
@ -51,7 +52,7 @@ func (this *dbPool) SelectOne(
|
||||
whereKv [][]string,
|
||||
cb QueryOneCb) {
|
||||
params := []string{}
|
||||
sql := "SELECT " + this.joinSelectFields(fields) + " FROM " + tblName + " WHERE 1=1"
|
||||
sql := fmt.Sprintf("SELECT %s FROM %s WHERE 1=1 ", this.joinSelectFields(fields), tblName)
|
||||
this.joinWhere(&sql, ¶ms, whereKv)
|
||||
this.internalQueryOne(dataSource, sql, params, cb)
|
||||
}
|
||||
@ -63,7 +64,7 @@ func (this *dbPool) OrmSelectOne(
|
||||
whereKv [][]string,
|
||||
cb QueryOneCb) {
|
||||
params := []string{}
|
||||
sql := "SELECT * FROM " + tblName + " WHERE 1=1"
|
||||
sql := fmt.Sprintf("SELECT * FROM %s WHERE 1=1 ", tblName)
|
||||
this.joinWhere(&sql, ¶ms, whereKv)
|
||||
this.internalQueryOne(dataSource, sql, params, cb)
|
||||
}
|
||||
@ -102,10 +103,15 @@ func (this *dbPool) Upsert(
|
||||
|
||||
func (this *dbPool) PageQuery(
|
||||
dataSource string,
|
||||
tblName string,
|
||||
whereKv [][]string,
|
||||
fieldsKv [][]string,
|
||||
cb QueryResultCb) {
|
||||
perPage int32,
|
||||
page int32,
|
||||
sql string,
|
||||
params []string,
|
||||
queryParam *PageQueryParam,
|
||||
cb PageQueryCb) {
|
||||
var pagination Pagination
|
||||
pagination.PerPage = q5.Max(1, perPage)
|
||||
pagination.CurrentPage = q5.Max(1, page)
|
||||
}
|
||||
|
||||
func (this *dbPool) borrowConn(dataSource string) *q5.Mysql {
|
||||
|
@ -5,6 +5,7 @@ var _timer *Timer
|
||||
var _sysLog *SysLog_
|
||||
var _tgLog *TGLog_
|
||||
var _httpCliMgr *HttpCliMgr
|
||||
var _pageQuery *pageQuery
|
||||
var _goStyleDb *dbPool
|
||||
var _jsStyleDb *dbPool
|
||||
|
||||
@ -28,6 +29,10 @@ func GetHttpCliMgr() *HttpCliMgr {
|
||||
return _httpCliMgr
|
||||
}
|
||||
|
||||
func GetPageQuery() *pageQuery {
|
||||
return _pageQuery
|
||||
}
|
||||
|
||||
func GetGoStyleDb() *dbPool {
|
||||
return _goStyleDb
|
||||
}
|
||||
|
132
pagequery.go
Normal file
132
pagequery.go
Normal file
@ -0,0 +1,132 @@
|
||||
package f5
|
||||
|
||||
/*
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
*/
|
||||
|
||||
type LinkOp int32
|
||||
|
||||
const (
|
||||
LK_AND LinkOp = iota
|
||||
LK_OR
|
||||
)
|
||||
|
||||
type QueryCond int32
|
||||
|
||||
const (
|
||||
QC_LIKE QueryCond = iota
|
||||
QC_EQ
|
||||
QC_LT
|
||||
QC_LE
|
||||
QC_GT
|
||||
QC_GE
|
||||
QC_CUSTOM
|
||||
)
|
||||
|
||||
type pageQuery struct {
|
||||
}
|
||||
|
||||
type PageQueryFilter interface {
|
||||
And() PageQueryFilter
|
||||
Or() PageQueryFilter
|
||||
Not() PageQueryFilter
|
||||
GenSql() string
|
||||
}
|
||||
|
||||
type PageQueryOne struct {
|
||||
linkOp LinkOp
|
||||
not bool
|
||||
fieldName string
|
||||
cond QueryCond
|
||||
ignoreEmpty bool
|
||||
val string
|
||||
}
|
||||
|
||||
type PageQueryComp struct {
|
||||
linkOp LinkOp
|
||||
not bool
|
||||
subFilters []*PageQueryOne
|
||||
}
|
||||
|
||||
type PageQueryParam struct {
|
||||
Filter []PageQueryFilter
|
||||
OrderBy string
|
||||
}
|
||||
|
||||
func (this *PageQueryParam) genSql() string {
|
||||
sql := " "
|
||||
/*
|
||||
for _, field := range this.Filter {
|
||||
}*/
|
||||
sql += " " + this.OrderBy + " "
|
||||
return sql
|
||||
}
|
||||
|
||||
func (this *pageQuery) Like(fieldName string, val string) *PageQueryOne {
|
||||
f := &PageQueryOne{
|
||||
cond: QC_LIKE,
|
||||
fieldName: fieldName,
|
||||
val: val}
|
||||
return f
|
||||
}
|
||||
|
||||
func (this *pageQuery) EQ(fieldName string, val string) *PageQueryOne {
|
||||
f := &PageQueryOne{
|
||||
cond: QC_EQ,
|
||||
fieldName: fieldName,
|
||||
val: val}
|
||||
return f
|
||||
}
|
||||
|
||||
func (this *pageQuery) LT(fieldName string, val string) *PageQueryOne {
|
||||
f := &PageQueryOne{
|
||||
cond: QC_LT,
|
||||
fieldName: fieldName,
|
||||
val: val}
|
||||
return f
|
||||
}
|
||||
|
||||
func (this *pageQuery) LE(fieldName string, val string) *PageQueryOne {
|
||||
f := &PageQueryOne{
|
||||
cond: QC_LE,
|
||||
fieldName: fieldName,
|
||||
val: val}
|
||||
return f
|
||||
}
|
||||
|
||||
func (this *pageQuery) GT(fieldName string, val string) *PageQueryOne {
|
||||
f := &PageQueryOne{
|
||||
cond: QC_GT,
|
||||
fieldName: fieldName,
|
||||
val: val}
|
||||
return f
|
||||
}
|
||||
|
||||
func (this *pageQuery) GE(fieldName string, val string) *PageQueryOne {
|
||||
f := &PageQueryOne{
|
||||
cond: QC_GE,
|
||||
fieldName: fieldName,
|
||||
val: val}
|
||||
return f
|
||||
}
|
||||
|
||||
func (this *pageQuery) Custom(fieldName string, val string) *PageQueryOne {
|
||||
f := &PageQueryOne{
|
||||
cond: QC_CUSTOM,
|
||||
fieldName: fieldName,
|
||||
val: val}
|
||||
return f
|
||||
}
|
||||
|
||||
func (this *pageQuery) Comp(subFilters []*PageQueryOne) *PageQueryComp {
|
||||
f := &PageQueryComp{
|
||||
subFilters: subFilters}
|
||||
return f
|
||||
}
|
||||
|
||||
func (this *PageQueryOne) IgnoreEmpy() *PageQueryOne {
|
||||
this.ignoreEmpty = true
|
||||
return this
|
||||
}
|
10
types.go
10
types.go
@ -20,10 +20,20 @@ type IMMsgNode struct {
|
||||
next *IMMsgNode
|
||||
}
|
||||
|
||||
type Pagination struct {
|
||||
Total int32
|
||||
Count int32
|
||||
PerPage int32
|
||||
CurrentPage int32
|
||||
TotalPages int32
|
||||
Rows *DataSet
|
||||
}
|
||||
|
||||
type HandlerFunc func(*Context)
|
||||
|
||||
type QueryResultCb func (error, *DataSet);
|
||||
type QueryOneCb func (error, *[]*string);
|
||||
type PageQueryCb func (error, Pagination);
|
||||
type ExecResultCb func (error, int64, int64);
|
||||
|
||||
type middleware struct {
|
||||
|
Loading…
x
Reference in New Issue
Block a user