From c4c6f2ece61dad6438f23e1c853b061650548ba8 Mon Sep 17 00:00:00 2001 From: John Date: Thu, 3 May 2018 19:02:24 +0800 Subject: [PATCH] =?UTF-8?q?gdb=E5=8C=85=E5=A2=9E=E5=8A=A0gdb.GetStruct/gdb?= =?UTF-8?q?.Model.Struct=E6=96=B9=E6=B3=95=EF=BC=8C=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=BB=93=E6=9E=9C=E8=AE=B0=E5=BD=95=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=BD=AC=E6=8D=A2=E4=B8=BA=E6=8C=87=E5=AE=9A=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- g/database/gdb/gdb_base.go | 12 +++++++++++- g/database/gdb/gdb_model.go | 9 +++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/g/database/gdb/gdb_base.go b/g/database/gdb/gdb_base.go index abfc91d64..a073be67d 100644 --- a/g/database/gdb/gdb_base.go +++ b/g/database/gdb/gdb_base.go @@ -102,7 +102,7 @@ func (db *Db) GetAll(query string, args ...interface{}) (Result, error) { return records, nil } -// 数据库查询,获取查询结果集,以关联数组结构返回 +// 数据库查询,获取查询结果记录,以关联数组结构返回 func (db *Db) GetOne(query string, args ...interface{}) (Record, error) { list, err := db.GetAll(query, args ...) if err != nil { @@ -114,6 +114,16 @@ func (db *Db) GetOne(query string, args ...interface{}) (Record, error) { return nil, nil } +// 数据库查询,获取查询结果记录,自动映射数据到给定的struct对象中 +func (db *Db) GetStruct(obj interface{}, query string, args ...interface{}) error { + one, err := db.GetOne(query, args...) + if err != nil { + return err + } + return one.ToStruct(obj) +} + + // 数据库查询,获取查询字段值 func (db *Db) GetValue(query string, args ...interface{}) (Value, error) { one, err := db.GetOne(query, args ...) diff --git a/g/database/gdb/gdb_model.go b/g/database/gdb/gdb_model.go index d3d4b04f6..8a85f4e27 100644 --- a/g/database/gdb/gdb_model.go +++ b/g/database/gdb/gdb_model.go @@ -275,6 +275,15 @@ func (md *Model) One() (Record, error) { return nil, nil } +// 链式操作,查询单条记录,并自动转换为struct对象 +func (md *Model) Struct(obj interface{}) error { + one, err := md.One() + if err != nil { + return err + } + return one.ToStruct(obj) +} + // 链式操作,查询字段值 func (md *Model) Value() (Value, error) { one, err := md.One()