xorm -Get方法实例
程序员文章站
2022-04-03 08:43:29
查询单条数据使用Get方法,在调用Get方法时需要传入一个对应结构体的指针,同时结构体中的非空field自动成为查询的条件和前面的方法条件组合在一起查询 go package main import ( "fmt" _ "github.com/go sql driver/mysql" "github ......
-
查询单条数据使用get方法,在调用get方法时需要传入一个对应结构体的指针,同时结构体中的非空field自动成为查询的条件和前面的方法条件组合在一起查询
package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" "log" "time" ) var engine *xorm.engine type user struct { name string `xorm:"varchar(25) 'name'"` id int `xorm:"pk 'id' autoincr"` createdat time.time `xorm:"created"` } func main() { var err error engine, err = xorm.newengine("mysql", "root:123456@/test") if err != nil { log.fatal(err) return } err = engine.createtables(user{}) if err != nil { log.fatal(err) return } u := make([]user, 5) u[0].name = "abcd" u[1].name = "acbd" u[2].name = "dbac" u[3].name = "cbda" u[4].name = "bdca" _, err = engine.insert(u) if err != nil { log.fatal(err) return } /*1) 根据id来获得单条数据:*/ fmt.println("=============id()==================") uu := new(user) has, err := engine.id(1).get(uu) if err != nil { log.fatal(err) return } if has { fmt.println(uu.name) } /* 2) 根据where来获得单条数据*/ fmt.println("=============where()==================") has, err = engine.where("id =?",1).get(uu) if err != nil { log.fatal(err) return } if has { fmt.println(uu.name) } /*3) 根据user结构体中已有的非空数据来获得单条数据 返回的结果为两个参数,一个has为该条记录是否存在,第二个参数err为是否有错误。不管err是否为nil,has都有可能为true或者false。 */ fmt.println("===============user结构体中已有的非空数据================") uu = &user{id:1} has, err = engine.get(uu) if err != nil { log.fatal(err) return } if has { fmt.println(uu.name) } } /* 输出: =============id()================== abcd =============where()================== abcd ===============user结构体中已有的非空数据================ abcd */