数据库操作优化

This commit is contained in:
hoteas 2022-08-15 05:59:06 +08:00
parent 8afd00ff86
commit b940afa6b0

View File

@ -70,7 +70,21 @@ func (that *HotimeDBBuilder) Select(qu ...interface{}) []Map {
return that.HoTimeDB.Select(that.table, that.join, qu, that.where)
}
func (that *HotimeDBBuilder) Update(data Map) int64 {
func (that *HotimeDBBuilder) Update(qu ...interface{}) int64 {
lth := len(qu)
if lth == 0 {
return 0
}
data := Map{}
if lth == 1 {
data = ObjToMap(qu[0])
}
if lth > 1 {
for k := 1; k < lth; k++ {
data[ObjToStr(k-1)] = qu[k]
k++
}
}
return that.HoTimeDB.Update(that.table, data, that.where)
}
@ -101,19 +115,51 @@ func (that *HotimeDBBuilder) FullJoin(table, joinStr string) *HotimeDBBuilder {
return that
}
func (that *HotimeDBBuilder) Join(join Map) *HotimeDBBuilder {
func (that *HotimeDBBuilder) Join(qu ...interface{}) *HotimeDBBuilder {
lth := len(qu)
if lth == 0 {
return that
}
data := Map{}
if lth == 1 {
data = ObjToMap(qu[0])
}
if lth > 1 {
for k := 1; k < lth; k++ {
data[ObjToStr(k-1)] = qu[k]
k++
}
}
if that.join == nil {
that.join = Slice{}
}
if join == nil {
if data == nil {
return that
}
that.join = append(that.join, join)
that.join = append(that.join, data)
return that
}
func (that *HotimeDBBuilder) And(where Map) *HotimeDBBuilder {
func (that *HotimeDBBuilder) And(qu ...interface{}) *HotimeDBBuilder {
lth := len(qu)
if lth == 0 {
return that
}
var where Map
if lth == 1 {
where = ObjToMap(qu[0])
}
if lth > 1 {
where = Map{}
for k := 1; k < lth; k++ {
where[ObjToStr(k-1)] = qu[k]
k++
}
}
if where == nil {
return that
}
@ -129,7 +175,22 @@ func (that *HotimeDBBuilder) And(where Map) *HotimeDBBuilder {
return that
}
func (that *HotimeDBBuilder) Or(where Map) *HotimeDBBuilder {
func (that *HotimeDBBuilder) Or(qu ...interface{}) *HotimeDBBuilder {
lth := len(qu)
if lth == 0 {
return that
}
var where Map
if lth == 1 {
where = ObjToMap(qu[0])
}
if lth > 1 {
where = Map{}
for k := 1; k < lth; k++ {
where[ObjToStr(k-1)] = qu[k]
k++
}
}
if where == nil {
return that
}
@ -144,7 +205,24 @@ func (that *HotimeDBBuilder) Or(where Map) *HotimeDBBuilder {
return that
}
func (that *HotimeDBBuilder) Where(where Map) *HotimeDBBuilder {
func (that *HotimeDBBuilder) Where(qu ...interface{}) *HotimeDBBuilder {
lth := len(qu)
if lth == 0 {
return that
}
var where Map
if lth == 1 {
where = ObjToMap(qu[0])
}
if lth > 1 {
where = Map{}
for k := 1; k < lth; k++ {
where[ObjToStr(k-1)] = qu[k]
k++
}
}
if where == nil {
return that
}