修复gdb MapToStruct问题

This commit is contained in:
john
2018-08-13 18:55:28 +08:00
parent d1c05ad71d
commit d1fcfddafb
4 changed files with 25 additions and 12 deletions

View File

@ -336,9 +336,14 @@ func (db *Db) insert(table string, data Map, option uint8) (sql.Result, error) {
if option == OPTION_SAVE {
var updates []string
for k, _ := range data {
updates = append(updates, fmt.Sprintf("%s%s%s=VALUES(%s)", db.charl, k, db.charr, k))
updates = append(updates,
fmt.Sprintf("%s%s%s=VALUES(%s%s%s)",
db.charl, k, db.charr,
db.charl, k, db.charr,
),
)
}
updatestr = fmt.Sprintf(" ON DUPLICATE KEY UPDATE %s", strings.Join(updates, ","))
updatestr = fmt.Sprintf("ON DUPLICATE KEY UPDATE %s", strings.Join(updates, ","))
}
return db.Exec(
fmt.Sprintf("%s INTO %s%s%s(%s) VALUES(%s) %s",
@ -389,7 +394,12 @@ func (db *Db) batchInsert(table string, list List, batch int, option uint8) (sql
if option == OPTION_SAVE {
var updates []string
for _, k := range keys {
updates = append(updates, fmt.Sprintf("%s%s%s=VALUES(%s)", db.charl, k, db.charr, k))
updates = append(updates,
fmt.Sprintf("%s%s%s=VALUES(%s%s%s)",
db.charl, k, db.charr,
db.charl, k, db.charr,
),
)
}
updatestr = fmt.Sprintf(" ON DUPLICATE KEY UPDATE %s", strings.Join(updates, ","))
}
@ -479,7 +489,7 @@ func (db *Db) formatCondition(condition interface{}) (where string) {
value := gconv.String(vs.MapIndex(k).Interface())
isNum := gstr.IsNumeric(value)
if len(where) > 0 {
where += " and "
where += " AND "
}
if isNum || value == "?" {
where += key + "=" + value

View File

@ -36,7 +36,7 @@ func (r Record) ToMap() Map {
func (r Record) ToStruct(obj interface{}) error {
m := make(map[string]interface{})
for k, v := range r {
m[k] = v
m[k] = v.String()
}
return gconv.MapToStruct(m, obj)
}

View File

@ -487,11 +487,11 @@ func getQueriedSqls() {
}
func main() {
db.SetDebug(true)
r, err := db.Table("test").Where("id=1").One()
fmt.Println(r["datetime"])
fmt.Println(r["datetime"].Time().Date())
fmt.Println(err)
//db.SetDebug(true)
//r, err := db.Table("test").Where("id=1").One()
//fmt.Println(r["datetime"])
//fmt.Println(r["datetime"].Time().Date())
//fmt.Println(err)
//create()
//create()
//insert()
@ -516,6 +516,6 @@ func main() {
//
//keepPing()
//likeQuery()
//mapToStruct()
getQueriedSqls()
mapToStruct()
//getQueriedSqls()
}

View File

@ -2,6 +2,7 @@ package main
import (
"gitee.com/johng/gf/g/database/gdb"
"gitee.com/johng/gf/g"
)
func main() {
@ -28,5 +29,7 @@ func main() {
// 构造一条错误查询
db.Table("user").Where("no_such_field=?", "just_test").One()
db.Table("user").Data(g.Map{"name":"smith"}).Where("uid=?", 1).Save()
db.PrintQueriedSqls()
}